我试图从以下xml结构中获取整数值(它只是文件的一部分)
我需要得到00 / pkw / diesel / pm0 / integer的值,但我不知道如何搜索...
<plist version="1.0">
<dict>
<key>00</key>
<dict>
<key>pkw</key>
<dict>
<key>gas</key>
<integer>0</integer>
<key>diesel</key>
<dict>
<key>ohne</key>
<integer>0</integer>
<key>pm01</key>
<integer>0</integer>
<key>pm0</key>
<integer>0</integer>
<key>pm1</key>
<integer>0</integer>
<key>pm2</key>
<integer>0</integer>
<key>pm3</key>
<integer>0</integer>
<key>pm4</key>
<integer>0</integer>
<key>pm5</key>
<integer>4</integer>
</dict>
<key>otto</key>
<integer>0</integer>
</dict>
</dict>
祝你有个主意吗?
此致 浮
编辑:
这是正常的:
/plist/dict/key[.=01]/following-sibling::*[1]/key[.='pkw']/following-sibling::*[1]/key[.='diesel']//following-sibling::*[1]/key[.='pm01']//following-sibling::*[1]
但我不知道这是不是很好的xpath语法; - )
答案 0 :(得分:0)
一种方法是:
/plist/dict/key[. = '00']/../dict/key[. = 'pkw']/../dict/key[. = 'diesel']/../dict/key[. = 'pm0']/following-sibling::integer[1]
您可以看到结果here。你可以看到它是一个非常愚蠢的表达。我可以更广泛地使用following-sibling::...
,但这取决于xml结构的精确程度。
除了您的问题:
/plist/dict/key[.=01]/following-sibling::*[1]/key[.='pkw']/following-sibling::*[1]/key[.='diesel']//following-sibling::*[1]/key[.='pm01']//following-sibling::*[1]
您应该将*
替换为代码的名称。
答案 1 :(得分:0)
在“示例xpath”中将(THE_KEY = 00, pwk, diesel, ...)
替换为dict[key/text()='THE_KEY']
:
00/pkw/diesel/pm0/integer
示例结果应为:
dict[key/text()='00']/dict[key/text()='pkw']/