Java 当xml元素不区分大小写时,是否可以使用单个Xpath表达式扫描该元素
我需要解析下面的Java 当xml元素不区分大小写时,是否可以使用单个Xpath表达式扫描该元素,java,xml,xpath,Java,Xml,Xpath,我需要解析下面的XML。我需要获取name-value。但是name元素可能不区分大小写。如何编写一个泛型Xpathepression来读取带有name或name的元素 <Employees> <Employee id="1"> <age>29</age> <name>Pankaj</name> <gender>Male</gender>
XML
。我需要获取name-value。但是name元素可能不区分大小写。如何编写一个泛型Xpath
epression来读取带有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>
尝试在下面的
XPath
中匹配name
和name
元素
/Employees/Employee/*[matches(name(), "name", "i")]/text()
/*[匹配(name(),“name”,“i”)]
应匹配名称(name()
)等于“name”
忽略(“i”
)大小写的任何元素()请尝试下面的XPath
匹配名称和名称元素
/Employees/Employee/*[matches(name(), "name", "i")]/text()
/*[匹配(name(),“name”,“i”)]
应匹配名称(name()
)等于“name”
忽略(“i”
)大小写的任何元素(*
),您可以尝试XPath translate()函数:
翻译(字符串1、字符串2、字符串3)
通过将string2中的字符替换为string3中的字符来转换string1
在您的情况下,请执行以下操作:
//Employee/*[翻译(local-name(),'abcdefghijklmnopqrstuvxyz','abcdefghijklmnopqrstuvxyz')='name'];
将:
对于每个员工
检查每个孩子
将子项名称(local-name()
)中的所有大写字母转换为小写字母
将其与“名称”进行比较
这样,您就不必手动检查每种可能性,也可以重复使用其他任何可能性;您只需将“name”替换为要检查的单词即可
进一步阅读:
翻译()-->
local-name()-->您可以尝试XPath translate()函数:
翻译(字符串1、字符串2、字符串3)
通过将string2中的字符替换为string3中的字符来转换string1
在您的情况下,请执行以下操作:
//Employee/*[translate(local-name(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','ABCDEFGHIJKLMNOPQRSTUVWXYZ')='name']代码>
将:
对于每个员工
检查每个孩子
将子项名称(local-name()
)中的所有大写字母转换为小写字母
将其与“名称”进行比较
这样,您就不必手动检查每个可能性,也可以重复使用任何其他可能性;你只需要用你想检查的单词替换“name”
进一步阅读:
翻译()-->
本地名称()-->