Получение значения элемента на основе некоторых условий в XSLT - PullRequest
0 голосов
/ 11 февраля 2019

Ниже приведен исходный XML-код, где мне нужно получить doc_id, где doc_tag равно «результату».В приведенном ниже примере мне нужен doc_id как 123654789, так как doc_tag равен результату, я пробовал различные пути X, но я не мог точно указать точку на doc_tag как результат

Любая помощь очень ценится.

Спасибо
Венк

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <document>
        <doc_id>321654987</doc_id>
        <doc_tag>Log</doc_tag>
    </document>
    <document>
        <doc_id>123654789</doc_id>
        <doc_tag>deliverable</doc_tag>
    </document>
    <document>
        <doc_id>325698741</doc_id>
        <doc_tag>Log2</doc_tag>
    </document>
    <document>
        <doc_id>369852147</doc_id>
        <doc_tag>nondeliverable</doc_tag>
    </document>
</root>

1 Ответ

0 голосов
/ 11 февраля 2019

Если вы хотите получить значение, когда вы находитесь в шаблоне, соответствующем узлу документа

<xsl:template match="/"> 
   <xsl:value-of select="root/document[doc_tag='deliverable']/doc_id" />
</xsl:template>

Квадратные скобки представляют собой условие, по которому должны фильтроваться выбранные document элементы.

...