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

标签 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”元素名称,因为还有其他几个与不相关的内容的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/

相关文章:

java - 诺基亚 S40 上的 "Nothing to display"

java - mule 中的 DOM 到 XML 转换器抛出异常

html - Servlet返回“HTTP状态404请求的资源(/Servlet)不可用”

java - 将字符串表达式计算为整数?

java - 即使 Java 缺少参数支持,Metro 能否使 Java web 服务与 WCF 互操作?

java - 如何对 QueryDSL 条件生成进行单元测试?

Python lxml xpath XPathEvalError : Invalid expression -- why?

c# - 包含来自 xml 的事件的动态按钮列表

mysql - "JSP First Connection cause second connection not running when it had ended"

java - Spring MVC 在 JSP 中迭代映射列表