如何使用Java按类名解析XML文档

时间:2016-05-26 17:05:52

标签: java xml jsp xml-parsing javabeans

我正在编写一个解析工具来比较Java中两个bean XML文件的文本内容。文本内容发生了变化,我们需要一种运行脚本的方法来确保文本内容相同。我知道我们有org.w3c.dom,它有一个方法getElementsByTagName(“tag_name”)并返回XML文档中的节点列表。我想知道是否有人知道使用类名这样做的方法?我一直在寻找,但还没有解决这个问题。

<bean class="com.mycompany.myText" id="Q1.4">
    <property name="name">
        <value>Q1.4</value>
    </property>
    <property name="text">
        <value>This is text one</value>
    </property>
    <property name="retired">
            <value>true</value>
    </property>
</bean>

<bean class="com.mycompany.myText" id="Q1.5">
    <property name="name">
        <value>Q1.5</value>
    </property>
    <property name="text">
        <value>This is text two</value>
    </property>
    <property name="retired">
            <value>true</value>
    </property>
</bean>

我不能使用'bean'元素名称,因为还有其他几个与非相关的东西我需要的只有com.mycompany.myText类的东西,而我想要提取的值是属性名= text - 文本内容

这里的任何帮助将不胜感激。另外作为旁注,我应该提一下,我们无法直接控制XML文件的管理和结构,因为它是从第三方提供给我们的。

1 个答案:

答案 0 :(得分:4)

正如您所说,您需要按其属性选择标记。

您可以使用XPath来实现此目的。查看这些资源:

表达式将是这样的

/bean[@class='com.mycompany.myText']/property[@name='text']/value

我希望我能帮助至少一点。