java - 如何动态读取xml节点值?

标签 java xml xml-parsing

我有一个类似这样的静态 XML。它基本上是一种配置。

<ScoCodes>
    <element scoCode="C1" foo="fooc1" bar="barc1" />
    <element scoCode="C2" foo="fooc2" bar="barc2" />
        <!-- like these 100 nodes are present -->
</ScoCodes>

对于给定的scoCode,我想知道它的foo值和bar值是什么?

既然它是静态的,我是否需要在静态 block 中解析一次并将其转换为某种DTO并将DTO放入集合(List,Set等)中,以便可以轻松搜索元素(DTO) ?

最佳答案

试试这个

String xmlSource = "your xml";
String xpathExpression = "//element[@scoCode='C1']/@foo | //element[@scoCode='C1']/@bar";

XPath xpath = XPathFactory.newInstance().newXPath();
StringReader reportConfigurationXML = new StringReader(xmlSource);
InputSource inputSource = new InputSource(reportConfigurationXML);

String result = (String) xpath.evaluate(xpathExpression, inputSource, XPathConstants.STRING);

干杯, 博鲁特

关于java - 如何动态读取xml节点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4322503/

相关文章:

java - List 类型不是通用的;它不能用参数 [HTTPClient] 参数化

java - 如何定义 Java Tomcat 应用程序的正确启动顺序?

php - xpath - 检查元素是否出现多次

xml - Powershell XML 解析不适​​用于子节点

android - 将设备上的数据与服务器同步?

java - Jackson 是否将属性的第二个字符反序列化为小写

java - 从 .wotreplay 文件中提取数据

android - 为什么HtmlCompat.fromHtml()没有设置文本样式?

android - 从 Android RSS 阅读器中的描述节点问题中获取数据

java - XMLHttpRequest 用于从 Web Api 获取当前时间