我有一个问题,我在输入 XML 中有重复的元素。如果第一个元素没有值,则不确定如何循环它以获取值。请指教。在输入 XML 中,它为每个 Contract 和 Lastname 显示两条记录。DOCUMENT 中的前两个元素显示为空白。如何使用循环获取值?如果声明?任何帮助是极大的赞赏。
这是输入 XML 的样子:
<?xml version='1.0' ?>
<MR>
<MRCase>
<ImageId>1542341</ImageId>
<MRNumber/>
<Claims/>
</MRCase>
<Document>
<Contract/>
<Lastname/>
<SIUReferenceList/>
<ClaimNoList/>
</Document>
<Document>
<Contract>H11193004362</Contract>
<Lastname>WESLEY</Lastname>
<MRReferenceList>|201802380|201802380|</MRReferenceList>
<MRNoList>|80489_E9OB_11</MRNoList>
</Document>
</MR>
这是我到目前为止所做的:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:env ="urn:envision">
<xsl:template match="MR">
<xsl:element name="MR">
<xsl:element name="MRCase">
<xsl:element name ="ImageId">
<xsl:value-of select="MRCase/ImageId"/>
</xsl:element>
<xsl:element name="Contract">
<xsl:choose>
<xsl:when test="contains('Contract')">
<xsl:text></xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text></xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
<xsl:element name ="Lastname">
<xsl:value-of select="Lastname"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
期望的输出
<?xml version='1.0' ?>
<MR>
<MRCase>
<ImageId>1542341</ImageId>
</MRCase>
<Document>
<Contract>H11193004362</Contract>
<Lastname>WESLEY</Lastname>
<MRReferenceList>|201802380|201802380|</MRReferenceList>
<MRNoList>|80489_E9OB_11</MRNoList>
</Document>
</MR>