我需要解析XML
以下。我需要获取名称值。但是name元素可能不区分大小写。如何使用{{写一个通用的Xpath
epression来读取元素1}}或name
?
Name
当我们将<Employees>
<Employee id="1">
<age>29</age>
<name>Pankaj</name>
<gender>Male</gender>
<role>Java Developer</role>
</Employee>
<Employee id="2">
<age>35</age>
<Name>Lisa</Name>
<gender>Female</gender>
<role>CEO</role>
</Employee>
</Employees>
作为动态值时,下面的表达式适用于name元素。
XPathExpression:
id
答案 0 :(得分:1)
请尝试以下XPath
以匹配name
和Name
元素
/Employees/Employee/*[matches(name(), "name", "i")]/text()
/*[matches(name(), "name", "i")]
应匹配任何名称(*
)等于name()
忽略("name"
)案例
"i"
)
答案 1 :(得分:1)
您可以尝试使用XPath translate()函数:
<强>翻译(字符串1,字符串,STRING3)强>
将 string2 中的字符替换为 string3
中的字符,以转换 string1在您的情况下,以下内容:
//Employee/*[translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='name']";
意愿:
Employee
local-name()
)名称中的所有字母转换为小写有了这个,您不必手动检查每种可能性,也可以重复使用其他任何可能性;你只需要替换&#34; name&#34;通过你要检查的词。
进一步阅读:
translate() - &gt; https://developer.mozilla.org/fr/docs/XPath/Fonctions/translate
local-name() - &gt; https://developer.mozilla.org/fr/docs/XPath/Fonctions/local-name