我有一个类似这样的静态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值是什么?

由于它是静态的,我是否需要在静态块中解析一次并将其转换为某种DTO,并将DTO放入Collection(列表,集合等)中,以便可以轻松地搜索element(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);


干杯,
波鲁特

10-07 18:09