<employees>
<employee>
<firstName>Lokesh</firstName>
<lastName>Gupta</lastName>
<department>
<id>101</id>
<name>IT</name>
</department>
</employee>
</employees>
我想使用Xpath获取元素名称。
我需要计数的元素,我使用获得的数量count(//employees/*)
和count(//employees/employee/department/*)
这是每个父母的返回计数。
我还需要获取元素名称,//employees/employee/*/name()
以获取元素名称FirstName,LastName和Department。
还(//employees/employee/department/*/name())
返回名称和ID ..但是它显示错误javax.xml.transform.TransformerException: Unknown nodetype: name .
您想要获取元素名称(而不是其值)。name()
必须出现在第一位。由于javax
仅支持XPath 1.0
,因此可以使用:
concat(name(//employees/employee/*[1]),",",name(//employees/employee/*[2]),",",name(//employees/employee/*[3]))
输出: firstName,lastName,department
concat(name(//employees/employee/department/*[1]),",",name(//employees/employee/department/*[2]))
输出: id,name
如果您不知道每个父元素的子代数,则应使用循环方法。首先,计算并存储child(count(//employees/employee/*)
)的数量,然后循环执行,[i]
在每次迭代中增加位置索引()//employees/employee/*[i]
i=i+1
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句