这个问题的主题可能不正确,因为我是XSLT的新手。我将尝试用一个例子来解释。我有以下XML
<?xml version="1.0" encoding="UTF-8"?>
<Recordset Name="Report" xmlns="http://pia.com/xml/ns">
<Record>
<TransactionReferenceNumber>T00005546</TransactionReferenceNumber>
<ExecutingEntityIDCode>724500LY73GPE4GDX159</ExecutingEntityIDCode>
</Record>
<Record>
<TransactionReferenceNumber>P00098080</TransactionReferenceNumber>
<ExecutingEntityIDCode>66666</ExecutingEntityIDCode>
</Record>
</Recordset>
XLST:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:a="http://pia.com/xml/ns"
exclude-result-prefixes="a">
<xsl:output method="xml" version="1.0"
encoding="UTF-8" omit-xml-declaration="no" indent="yes" />
<xsl:template match="/">
<xsl:for-each select="/a:Recordset/a:Record">
<TxId>
<xsl:value-of select="/a:Recordset/a:Record/a:TransactionReferenceNumber"/>
</TxId><xsl:text>
</xsl:text>
<ExctgPty>
<xsl:value-of select="/a:Recordset/a:Record/a:ExecutingEntityIDCode"/>
</ExctgPty>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
具有所需的输出
<?xml version="1.0" encoding="utf-8"?>
<TxId>T00005546</TxId>
<ExctgPty>724500LY73GPE4GDX159</ExctgPty>
<TxId>P00098080</TxId>
<ExctgPty>66666</ExctgPty>
但我在两种情况下都获得了第一批数据。
<?xml version="1.0" encoding="utf-8"?>
<TxId>T00005546</TxId>
<ExctgPty>724500LY73GPE4GDX159</ExctgPty>
<TxId>T00005546</TxId>
<ExctgPty>724500LY73GPE4GDX159</ExctgPty>
我如何循环并获得所需的输出? 注意:这只是我正在使用的一小部分XML和XSLT代码。
答案 0 :(得分:0)
使用此
<xsl:for-each select="/a:Recordset/a:Record">
<TxId>
<xsl:value-of select="a:TransactionReferenceNumber"/>
</TxId><xsl:text>
</xsl:text>
<ExctgPty>
<xsl:value-of select="a:ExecutingEntityIDCode"/>
</ExctgPty>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
答案 1 :(得分:0)
{{1}}
我会