gpt4 book ai didi

java - 使用 JDOM 查找后代元素

转载 作者:行者123 更新时间:2023-11-30 04:26:24 27 4
gpt4 key购买 nike

有没有办法像使用 jQuery 一样使用 JDOM 查找后代元素?

我正在尝试从此 XML 文档中获取序列元素:

<getEmployeesXMLResponse xmlns="http://tempuri.org/">
<getEmployeesXMLResult>
<xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true"
msdata:MainDataTable="ListOfEmployees"
msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ListOfEmployees">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0" />
<xs:element name="department" type="xs:string"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<DocumentElement xmlns="">
<ListOfEmployees diffgr:id="ListOfEmployees1"
msdata:rowOrder="0">
<name>Paul</name>
<department>Sales</department>
</ListOfEmployees>
<ListOfEmployees diffgr:id="ListOfEmployees2"
msdata:rowOrder="1">
<name>Bob</name>
<department>Marketing</department>
</ListOfEmployees>
</DocumentElement>
</diffgr:diffgram>
</getEmployeesXMLResult>
</getEmployeesXMLResponse>

目前我正在这样做:

        Element currentEl = document.getRootElement();
do {
currentEl = currentEl.getChildren().get(0);
} while (currentEl.getName() != "sequence");

但我认为一定有更好的方法。

感谢您的建议

最佳答案

使用 XPath 并在此处阅读:JavaDoc for XPathFactory以及更多相关信息:GitHub Wiki

底线是您希望使用表达式“//xs:sequence”和命名空间 Namespace.getNamespace("xs", "http://www.w3.org/2001/XMLSchema ") 编译 XPath

罗尔

关于java - 使用 JDOM 查找后代元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15767122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com