簡體   English   中英

XPath查詢:使用條件獲取特定值

[英]XPath query : Get specific value with condition

我制作了一個Java程序來解析xml文件,例如:

<lom:contribute>
        <lom:role>
            <lom:source>LOMv1.0</lom:source>
            <lom:value>author</lom:value>
        </lom:role>
        <lom:entity>toto</lom:entity>
        <lom:date>
            <lom:dateTime>2009-10-07</lom:dateTime>
        </lom:date>
    </lom:contribute>
    <lom:contribute>
        <lom:role>
            <lom:source>LOMv1.0</lom:source>
            <lom:value>instructional designer</lom:value>
        </lom:role>
        <lom:entity>titi</lom:entity>
        <lom:date>
            <lom:dateTime>2009-10-07</lom:dateTime>
        </lom:date>
    </lom:contribute>

當角色值為author時,我想進行XPath查詢以獲取實體(在此示例中為toto)。 我暫時進行了以下查詢: //*[local-name()='contribute']/*[local-name()='role']/*[local-name()='value'] = 'author' 如果文件中存在作者,則此查詢返回true,但我不知道如何獲取實體值。 提前致謝。

該XPath返回toto

//*[local-name()='contribute'][*[local-name()='role']/*[local-name()='value'] = 'author']/*[local-name()='entity']/text()

如果刪除最后一個/text() ,它將返回包含文本totoentity元素。 我不確定您要尋找哪個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM