我正在编写一个解析工具来比较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文件的管理和结构,因为它是从第三方提供给我们的。
答案 0 :(得分:4)
正如您所说,您需要按其属性选择标记。
您可以使用XPath来实现此目的。查看这些资源:
表达式将是这样的
/bean[@class='com.mycompany.myText']/property[@name='text']/value
我希望我能帮助至少一点。