使用XPath提取和清理XML数据

时间:2019-04-03 11:34:14

标签: java xml xpath

我想提取所有属性名称,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>

问题是ATTRIBUTES/ATTRIBUTE/@IDATTRIBUTES/ATTRIBUTE/#VALUE仅返回现有数据,并不表示没有IDvalue元素的节点。

我找到了related question,有人在其中搜索不匹配或不存在的属性,但是我无法翻译代码来满足我的需求。

如何使用XPath提取健全的数据,使数据完整无缺?

1 个答案:

答案 0 :(得分:0)

我建议您使用Jsoup-library解析xml。它旨在读取html上下文中的xml。它有几种方法可以通过Css选择器,id来​​查找元素,或者匹配属性上的值,或者对属性上的值进行逆匹配,直接查找属性值,等等。

只需使用Jsoup.connect方法连接到URL。这将返回一个Document(J汤节点特化)。从那时起,您可以使用多种方法从文档中提取数据。

https://jsoup.org/

https://mvnrepository.com/artifact/org.jsoup/jsoup/1.8.3