XSLT选择子节点中存在值的父节点

时间:2017-05-26 11:24:07

标签: xml xslt

如何选择'消息'任何孩子的值为' EXCEPTION'。

的节点
<?xml version="1.0" encoding="UTF-8"?>
<Envelope>
<Message>
    <MessageId>1</MessageId>
    <Merchant>
        <Type>Supplier</Type>
        <Id>23</Id>
    </Merchant>
    <Operation>Create</Operation>
    <SKU>AVRCD_002</SKU>
    <Attribute>
        <country>South Africa</country>
        <artist>Anneli Van Rooyen</artist>
        <composer>Anneli Sale</composer>
    </Attribute>
</Message>
<Message>
    <MessageId>2</MessageId>
    <Merchant>
        <Type>Supplier</Type>
        <Id>EXCEPTION</Id>
    </Merchant>
    <Operation>Create</Operation>
    <SKU>AVRCD_002</SKU>
    <Attribute>
        <country>EXCEPTION</country>
        <artist>Anneli Van Rooyen|Lorenzo Tieghi</artist>
        <composer>Sale Anneli</composer>
    </Attribute>
</Message>
</Envelope>

以下您需要指定确切的孩子。我不想这样做。我只想要/消息,如果有任何东西具有&#39; EXCEPTION&#39;在其中。

<xsl:copy-of select="/Envelope/Message[Attribute/country = 'EXCEPTION' or Merchant/Id = 'EXCEPTION']"/>

1 个答案:

答案 0 :(得分:0)

尝试这样做,它会检查任何后代文本节点是否等于&#34; EXCEPTION&#34;

<xsl:copy-of select="/Envelope/Message[.//text() = 'EXCEPTION']"/>