使用Java比较两个不同XML文件中具有相同名称的两个XML属性

时间:2015-06-09 09:27:39

标签: java xml xml-attribute

我有一个带有属性和元素/标签的XML。 我想知道根据性能使用属性或标签是否合适。

请举例说明内容是否有子标记,以及内容是否有属性。 我的问题是,是否可以在2个不同的XML文件中比较2个具有相同名称的属性,而且在这里我们将拥有大量数据。 因此,如果我将其视为属性或标记,我想确定性能如何。

    <A Name="HRMS">
    <B BName="IN">
    <C Code="0001">
      <IN irec="200" />
      <OUT orec="230" Number="" Outname=""/>
    </C>
    <C Code="0004">
      <IN irec="209" />
      <OUT orec="209" Number="" Outname=""/>
    </C>
    <C Code="0008">
      <IN irec="250" />
      <OUT orec="250" Number="" Outname=""/>
    </C>
    </B>
</A>

在这里,我必须比较irec和orec的特定B名称和C代码

1 个答案:

答案 0 :(得分:0)

这是可能的。你需要一个像jsoup这样的java lib来帮助解析xml的路径表达式,比如jquery css选择表达式。

Jsoup是一个HTML解析器,但html是一种xml应用程序,因此您可以使用它来解析xml内容。

jsoup示例:

String xml = "<root><person name=\"Bob\"><age>20</age></person></root>";
Document root = Jsoup.parse(xml);
System.out.println(root.body().html());//origin XML content
Elements persons = root.getElementsByTag("person");
Element person = persons.first();
System.out.println("The attribute 'name' of Person:" + person.attr("name"));
System.out.println(persons.select("person[name=Bob]").first().text());

您可以简单地使用jsoup实现比较差异功能。