使用XPath表达式中的属性从元素中获取文本?

时间:2016-01-16 19:27:04

标签: xml xpath

这是XML代码:

    <perfil>
        <person idP="P1">
            <studied refidEs="Es3"/>
    .
    .
    .

    <schools>
        <school idEs="Es3">
            <name>Name of the school</name>
        </school>

在文件的开头我引用了某所学校,最后我得到了具有正确身份的学校名称。在XPath表达式中,我必须提到开头的内容(例如perfil/person/studied[@refidEs]),并且我希望它显示学校的名称。问题是,当我在示例中使用表达式时,它只显示学校的id。即使我以/text()结尾,也没有显示结果。

2 个答案:

答案 0 :(得分:0)

此XPath表达式将选择name的{​​{1}}的字符串值,school属性值为@idEs

Es3

对于提供的XML(假设它是完整的,格式正确的,没有其他string(//school[@idEs='Es3']/name) 元素具有相同的school属性值),这将选择:

Es3

答案 1 :(得分:0)

这就是你用xpaths来识别元素的方法:

//school[@idEs='Es3']/name[1]

Xpath允许您以这种方式选择任何属性。例如,您可以将@idEs=替换为任何其他属性选择器,例如@class=。下一部分获取第一个<name>元素的值,这是您尝试定位的元素。

请查看此内容以进一步说明http://www.w3schools.com/xsl/xpath_syntax.asp