@haokuixi
2015-05-18T02:57:01.000000Z
字数 806
阅读 9474
xpath
要解决的问题:
从 xml 文件中选取有某个特定文本值的节点,比如说我要处理的是 plist 文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AppIDName</key>
<string>chineseidublin</string>
<key>ApplicationIdentifierPrefix</key>
<array>
<string>CS8M2QZ3L3</string>
</array>
<key>TimeToLive</key>
<integer>364</integer>
<key>Version</key>
<integer>1</integer>
</dict>
</plist>
key=AppIDName,我要提取它所对应的 string value,即 chineseidublin,那么
1. 定位 key 节点 N
2. 取节点 N 后面的第一个节点
所使用的 XPath 表达式:
//key[text()='AppIDName']/following::*[1]
PS:
上面的表达式对于 XPath 中的各个知识点都有涉及:
//key
路径表达式 text()
分类测试,属于节点测试 =
运算符 following::*
轴 [1]
谓语 参考:
1. XPath 教程 | W3School
2. XML Path Language (XPath) 2.0 (Second Edition)