我想从以下标记中提取名称属性值
<application
comments="Do not erase this one"
executable="run_CIET"
icon="default"
instances="1"
mode="1"
name="CIET"
order="10"
selection="1"
tool="y"
/>
Run Code Online (Sandbox Code Playgroud)
我可以根据模式值轻松获取name属性值的值,如下所示
xpath Applications.xml '//applications/application[@mode='3']'/@name
Run Code Online (Sandbox Code Playgroud)
但是,如果我想添加更多的条件,"当模式= X时获取名称属性值,并且应用程序标签中没有工具属性"
我们如何做到这一点?我试过类似的东西
xpath Applications.xml '//applications/application[@mode='3' and !@tool]'/@name
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我之前没有使用XPath,我发现它很棘手我在XPath上搜索W3C帮助但是没找到我想要的东西.请帮忙.
Dim*_*hev 17
How do we do this? I tried something like
xpath Applications.xml '//applications/application[@mode='3' and !@tool]'/@name
but its not working.
!@tool
Run Code Online (Sandbox Code Playgroud)
是XPath中的无效语法.有一个!=操作员,但没有!操作员.
用途:
//applications/application[@mode='3' and not(@tool)]/@name
Run Code Online (Sandbox Code Playgroud)
您应该总是尽量避免两件事:
使用!=运算符 - 它具有奇怪的定义并且不像not()函数那样 - 如果其中一个操作数是节点集,则不使用它.
尽量避免使用//缩写 - 这可能会导致显着的低效率,并且还会出现大多数人无法接受的异常行为.
| 归档时间: |
|
| 查看次数: |
32187 次 |
| 最近记录: |