如何使用 Java 按 Class 名称解析 XML 文档
How to Parse XML Document By Class Name Using Java
我正在编写一个解析工具来比较 Java 中两个 bean XML 文件的文本内容。文本内容发生变化,我们需要一种方法 运行 脚本来确保文本内容相同。我知道我们有 org.w3c.dom,它有一个方法 getElementsByTagName("tag_name") 和 returns XML 文档中的一个节点列表。我想知道是否有人知道使用 class 名称执行此操作的方法?我一直在四处寻找,但还没能解决这个问题。
<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,我只需要带有 class com.mycompany.myText 和值 I' m 试图提取的是 属性 name=text - 文本内容
如有任何帮助,我们将不胜感激。另外作为旁注,我应该提到我们无法直接控制 XML 文件的管理和结构,因为它是从第 3 方提供给我们的。
如您所说,您需要 select 按属性添加标签。
您可以使用 XPath 来实现这一点。查看这些资源:
表达式应该是这样的
/bean[@class='com.mycompany.myText']/property[@name='text']/value
我希望至少能帮上一点忙。
我正在编写一个解析工具来比较 Java 中两个 bean XML 文件的文本内容。文本内容发生变化,我们需要一种方法 运行 脚本来确保文本内容相同。我知道我们有 org.w3c.dom,它有一个方法 getElementsByTagName("tag_name") 和 returns XML 文档中的一个节点列表。我想知道是否有人知道使用 class 名称执行此操作的方法?我一直在四处寻找,但还没能解决这个问题。
<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,我只需要带有 class com.mycompany.myText 和值 I' m 试图提取的是 属性 name=text - 文本内容
如有任何帮助,我们将不胜感激。另外作为旁注,我应该提到我们无法直接控制 XML 文件的管理和结构,因为它是从第 3 方提供给我们的。
如您所说,您需要 select 按属性添加标签。
您可以使用 XPath 来实现这一点。查看这些资源:
表达式应该是这样的
/bean[@class='com.mycompany.myText']/property[@name='text']/value
我希望至少能帮上一点忙。