매우 간단한 XML이 있습니다. 필자는 일부 XML을 재 작성하고 완성 된 텍스트를 최종 XML 파일에 추가하여 InDesign으로 가져올 때 사용합니다.XSLT를 사용하여 XML 빈 노드 제외
모든 레코드에서 모든 XML 필드가 사용되는 것은 아닙니다. 따라서 XSLT가 상용구 텍스트를 추가하면 XML 요소가 포함되지 않은 레코드에도 나타납니다.
">>"를 선택하여 요소를 찾은 다음 요소가 있으면 그 요소를 사용하거나 상용구를 무시하고 요소가 레코드에 없으면 NOTHING을 삽입하려고했습니다. 여기
은 몇 가지 예제 XML 데이터입니다 : 여기<?xml version="1.0" encoding="UTF-8"?>
<root>
<story>
<CL>
<CityDescription>City One</CityDescription>
<BK>
<CompanyName>Corporate Name</CompanyName>
<address>123 Main St</address>
<HoldingCo>Company Name</HoldingCo>
<TotalAssets>128,319,000</TotalAssets>
<TotalLiabilities>117,059,000</TotalLiabilities>
<TotalDeposits>89,847,000</TotalDeposits>
<EquityCapital>11,260,000</EquityCapital>
</BK>
<BK>
<CompanyName>Smaller Company</CompanyName>
<address>123 Central St</address>
</BK>
</CL>
<CL>
<CityDescription>City Two</CityDescription>
<BK>
<CompanyName>Corporate Name Three</CompanyName>
<address>123 High St</address>
<HoldingCo>Company Name</HoldingCo>
<TotalAssets>128,319,000</TotalAssets>
<TotalLiabilities>117,059,000</TotalLiabilities>
<TotalDeposits>89,847,000</TotalDeposits>
<EquityCapital>11,260,000</EquityCapital>
</BK>
<BK>
<CompanyName>Smaller Company Four</CompanyName>
<address>123 Jones St</address>
</BK>
</CL>
</story>
</root>
내가 사용하려고 한 XSLT이지만, 추가 "지주 공동 :" "총 자산 :"심지어하지 않았다 기록에 요소를 포함 :
<?xml version="1.0" encoding="UTF-8"?><!-- DWXMLSource="Testing.xml" -->
<!DOCTYPE xsl:stylesheet [
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="XML" />
<xsl:template match="/">
<root>
<story>
<xsl:for-each select="root/story/CL">
<CityDescription><xsl:value-of select="CityDescription"/></CityDescription><xsl:text>
</xsl:text>
<xsl:for-each select="BK">
<CompanyName><xsl:value-of select="CompanyName"/></CompanyName><xsl:text>
</xsl:text>
<address><xsl:value-of select="address"/></address><xsl:text>
</xsl:text>
<HoldingCo><xsl:text>Holding Co: </xsl:text><xsl:value-of select="HoldingCo"/></HoldingCo><xsl:text>
</xsl:text>
<TotalAssets><xsl:text>Total Assets: </xsl:text><xsl:value-of select="TotalAssets"/></TotalAssets><xsl:text>
</xsl:text>
<TotalLiabilities><xsl:text>Total Liabilities: </xsl:text><xsl:value-of select="TotalLiabilities"/></TotalLiabilities><xsl:text>
</xsl:text>
<TotalDeposits><xsl:text>Total Deposits: </xsl:text><xsl:value-of select="TotalDeposits"/></TotalDeposits><xsl:text>
</xsl:text>
<EquityCapital><xsl:text>Total Assets: </xsl:text><xsl:value-of select="EquityCapital"/></EquityCapital><xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:for-each>
</story>
</root>
</xsl:template>
</xsl:stylesheet>
나는 그들이 데이터에 나타나지 않는 경우 >> 그렇지 않으면 기본적으로 외 요소를 무시하면 >> 선택 사용하려고했으나 "그렇지 않으면"콘텐츠하지만 내 출력 쇼 아무것도.
제안 사항?
모 놀리 식 for-each가 아닌 스타일 시트에서 템플릿 규칙을 사용하는 방법을 배웁니다. 그런 다음 요소가 비어있는 것과 같은 특별한 경우를 다루기 위해 규칙을 수정하는 것이 매우 쉽습니다. –