交叉选择XML元素

时间:2013-06-27 19:33:27

标签: xml xpath

我有一个xml文档,其格式如下:

<wsc>
    <entries>
        <id>1</id>
    </entries>
    <entries2keywords>
        <entryId>1</entryId>
        <keywordId>1</keywordId>
    </entries2keywords>
    <entries2keywords>
        <entryId>1</entryId>
        <keywordId>2</keywordId>
    </entries2keywords>
    <keywords>
        <id>1</id>
        <keyword>kw1</keyword>
    </keywords>
    <keywords>
        <id>2</id>
        <keyword>kw2</keyword>
    </keywords>
</wsc>

我正在尝试解析它,以便我可以存储属于Element的所有关键字。到目前为止,我遍历所有entries2关键字并使用此xpath表达式查找匹配的entryId:

//entries2keywords[entryId='1']/keywordId

返回keywordId就好了。

但是,我正在寻找一种方法来立即选择实际的关键字,所以像这样(伪代码):

//keywords[contains (id, //entries2keywords[entryId='1']/keywordId) ]/keyword

我意识到这是格式错误的XML,但不幸的是我无法改变它。

1 个答案:

答案 0 :(得分:0)

从你的伪代码我认为这就是你要找的东西:

//keywords[id = //entries2keywords[entryId='1']/keywordId ]/keyword