<attributes>
<attribute name="Mail Zone" property="alerts.p45" type="">
<value>mailzone</value>
</attribute>
<attribute name="Employee Name" property="acm_alert_custom_attributes.cs11" type="">
<value>employeename</value>
</attribute>
<attribute name="Manager Name" property="alerts.p23" type="">
<value><managername></value>
</attribute>
如何使用XPath基于上述XML的属性“name”选择节点<value>
?
答案 0 :(得分:6)
假设您要选择value
元素,该元素是attribute
的子元素,其名称为“员工姓名”。
XPath表达式如下:
/attributes/attribute[@name="Employee Name"]/value
在XSL中你可以像这样使用它:
<xsl:value-of select="/attributes/attribute[@name='Employee Name']/value"/>
它以下列方式构建。首先,您要选择value
属性,其父级是attribute
元素,其父级是根(我假设)attributes
。 /
运算符表示元素之间的父子关系。因此,选择所有 value
元素的表达式如下:
/attributes/attribute/value
以此为基础,您希望通过其他某些属性过滤结果。在这种情况下,您希望按name
元素的attribute
属性进行过滤(您选择的名称可能会使事情难以理解)。使用要过滤的元素上的[]
子句进行过滤。在你的情况下是attribute
元素:
/attributes/attribute[]/value
现在你需要在过滤器中添加一些东西。 @
符号表示您要过滤的元素的属性,后跟您想要的属性的名称。然后将属性与某个已知值进行比较,得到上面的表达式:
/attributes/attribute[@name='filter']/value