如何在xslt 1.0中粘贴来自我的xml源代码的描述
问题描述:
我有问题在这种情况下如何粘合两个或更多描述。 源代码是在这里:如何在xslt 1.0中粘贴来自我的xml源代码的描述
<?xml version="1.0" encoding="utf-8" ?>
<Document>
<Number>739</Number>
<Date>2017-05-31</Date>
<Amount>204.46</Amount>
<FormOfPayment>2</FormOfPayment>
<Customer>
<Id> 10000</Id>
<Name>Auto Car Parts</Name>
</Customer>
<DocumentItems>
<Item>
<Amount>36.59</Amount>
<Date>2017-05-31</Date>
<SourceDoc>
<Number>1571/05/2017/ZO</Number>
<Date>2017-05-26</Date>
</SourceDoc>
</Item>
<Item>
<Amount>167.87</Amount>
<Date>2017-05-31</Date>
<SourceDoc>
<Number>0491/05/2017/ZO</Number>
<Date>2017-05-12</Date>
</SourceDoc>
</Item>
</DocumentItems>
</Document>
我`吨找到在XSLT 1.0一些功能,我可以从粘合部文献/ DocumetItems /项目/ SourceDoc /数字节点到一个变量。源代码我应该得到的是在这个例子中是这样的:
<DocumentNumber>739</DocumentNumber>
<DocumentDate>2017-05-31</DocumentDate>
<Description>1571/05/2017/ZO, 0491/05/2017/ZO</Description>
请帮我GET说明这个样子。也许我可以使用for-each,但是如何做到这一点?
答
见http://xsltfiddle.liberty-development.net/948Fn58为阐明样式表,它使用
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes"/>
<xsl:template match="/*">
<xsl:copy>
<xsl:apply-templates select="Number | Date"/>
<Description>
<xsl:apply-templates select="DocumentItems/Item/SourceDoc/Number"/>
</Description>
</xsl:copy>
</xsl:template>
<xsl:template match="Number">
<DocumentNumber>
<xsl:apply-templates/>
</DocumentNumber>
</xsl:template>
<xsl:template match="Date">
<DocumentDate>
<xsl:apply-templates/>
</DocumentDate>
</xsl:template>
<xsl:template match="SourceDoc/Number">
<xsl:if test="position() > 1">, </xsl:if>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
那么你的的XPath阐明了你的元素,因此简单地使用路径作为''你换each'和输出的select'属性如果test =“position()!= last()”>,或者在前面加上' 1“>,'有你的逗号分隔符。 –
它如何看起来像? – jeffers