假设我有以下xml:
<ns5:OrderTotal>
<ns5:Name>AmountPaid</ns5:Name>
<ns5:Description>Payment Received</ns5:Description>
<ns5:SortOrder>4</ns5:SortOrder>
<ns5:Value>16.95</ns5:Value>
</ns5:OrderTotal>
<ns5:OrderTotal>
<ns5:Name>AmountDue</ns5:Name>
<ns5:Description>Current Amount Due</ns5:Description>
<ns5:SortOrder>5</ns5:SortOrder>
<ns5:Value>0.0</ns5:Value>
</ns5:OrderTotal>
如果我只想在NameTotal为AmountPaid时打印OrderTotal的值,那怎么能实现呢?
感谢您的帮助。
答案 0 :(得分:1)
我不知道您将如何打印所需的值,但可以使用以下XPath表达式收集它:
//ns5:OrderTotal[child::ns5:Name = 'AmountPaid']/ns5:Value
例如:
XML:
<ns5:Orders xmlns:ns5="a">
<ns5:OrderTotal>
<ns5:Name>AmountPaid</ns5:Name>
<ns5:Description>Payment Received</ns5:Description>
<ns5:SortOrder>4</ns5:SortOrder>
<ns5:Value>16.95</ns5:Value>
</ns5:OrderTotal>
<ns5:OrderTotal>
<ns5:Name>AmountDue</ns5:Name>
<ns5:Description>Current Amount Due</ns5:Description>
<ns5:SortOrder>5</ns5:SortOrder>
<ns5:Value>0.0</ns5:Value>
</ns5:OrderTotal>
</ns5:Orders>
XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl" version="1.0"
xmlns:ns5="a">
<xsl:template match="/">
<xsl:element name="Value">
<xsl:value-of select="//ns5:OrderTotal[child::ns5:Name = 'AmountPaid']/ns5:Value"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
输出:
<?xml version="1.0" encoding="utf-8"?>
<Value>16.95</Value>
答案 1 :(得分:0)
<xsl:if test="Name = 'AmountPaid'">
<xsl:value-of select="Value"/>
</xsl:if>
尝试以上XSL
。