Java 使用XPath提取和整理XML数据

Java 使用XPath提取和整理XML数据,java,xml,xpath,Java,Xml,Xpath,我想提取所有属性名称、ID和值,因为数据需要导入到另一个系统中 <ATTRIBUTES> <ATTRIBUTE NAME="TOLERANCE" ID="AT000"></ATTRIBUTE> <ATTRIBUTE NAME="CHANGED_AT"> <VALUE>2019-01-31</VALUE> </ATTRIBUTE>

我想提取所有属性名称、ID和值,因为数据需要导入到另一个系统中

   <ATTRIBUTES>
        <ATTRIBUTE NAME="TOLERANCE" ID="AT000"></ATTRIBUTE>
        <ATTRIBUTE NAME="CHANGED_AT">
            <VALUE>2019-01-31</VALUE>
        </ATTRIBUTE>
        <ATTRIBUTE NAME="CHANGED_BY" ID="AT002"></ATTRIBUTE>
        <ATTRIBUTE NAME="WEIGHT_UNIT" ID="AT003">
            <VALUE>kg</VALUE>
        </ATTRIBUTE>
    </ATTRIBUTES>
,其中有人搜索不匹配或不存在的属性,但我无法翻译代码以满足我的需要


如何使用XPath提取健全的数据以保持数据完整性?

我建议您使用Jsoup库解析xml。它的目标是在html上下文中读取xml。它有几种方法通过Css选择器、id查找元素,或者匹配属性上的值,或者反向匹配属性上的值,直接查找属性值,等等

只需使用Jsoup.connect方法连接到url。这将返回一个文档(J-soup节点专用化)。从那时起,您就可以使用各种方法从文档中提取数据


我建议您使用Jsoup库解析xml。它的目标是在html上下文中读取xml。它有几种方法通过Css选择器、id查找元素,或者匹配属性上的值,或者反向匹配属性上的值,直接查找属性值,等等

只需使用Jsoup.connect方法连接到url。这将返回一个文档(J-soup节点专用化)。从那时起,您就可以使用各种方法从文档中提取数据


不要使用XPath,或者只使用它来获取
元素列表。然后使用XPath以外的方法处理此列表。XPath 1.0返回节点集(无序、重复数据消除的节点列表)。无法选择不存在的节点。您应该使用宿主语言进行进一步的处理,比如当XPath表达式返回空节点集(“未找到”)时发出一些默认信息。第一个用于提取所有属性节点,第二个用于提取与单个属性节点相关的表达式。不要使用XPath,或者仅用于获取
元素列表。然后使用XPath以外的方法处理此列表。XPath 1.0返回节点集(无序、重复数据消除的节点列表)。无法选择不存在的节点。您应该使用宿主语言进行进一步的处理,比如当XPath表达式返回空节点集(“未找到”)时发出一些默认信息。第一个是提取所有属性节点,第二个是相对于单个属性节点的表达式。