我正在编写一个解析工具来比较 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”元素名称,因为还有其他几个与不相关的内容的bean,我只需要具有类 com.mycompany.myText 的bean,并且我尝试提取的值是属性名称= text - 文本内容
如有任何帮助,我们将不胜感激。另外,作为旁注,我应该提到,我们无法直接控制 XML 文件的管理和结构方式,因为它是从第 3 方提供给我们的。
最佳答案
正如您所说,您需要根据标签的属性来选择标签。
您可以使用 XPath 来实现此目的。查看这些资源:
表达式会是这样的
/bean[@class='com.mycompany.myText']/property[@name='text']/value
希望我能帮上一点点忙。
关于java - 如何使用 Java 按类名解析 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37467095/