1

私が次の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>

名前がAmountPaidのときにOrderTotalの値のみを出力したい場合、これをどのように実現できますか?

助けてくれてありがとう。

4

2 に答える 2

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>
于 2012-08-08T17:49:39.603 に答える
0
<xsl:if test="Name = 'AmountPaid'">
 <xsl:value-of select="Value"/>
</xsl:if>

上記を試してくださいXSL

于 2012-08-08T17:47:56.077 に答える