2010-12-01 14 views
0

私はこのような静的なXMLを持っています。それは基本的に構成の一種です。与えられたscoCodeためXMLノードの値を動的に読み取る方法は?

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

、私はそのfoo値とbar値が何であるかを知りたいですか?

静的なので、静的なブロックで一度解析して何らかの種類のDTOに変換し、要素(DTO)が簡単にできるようにDTOをCollection(List、Setなど)に配置する必要がありますか検索された?

答えて

4

この

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); 

乾杯、 Borut

を試してみてください
1

XPath式を使用する必要があります。すべてのfoo属性を選択するには、 '// @ foo' XPath式を使用できます。すべての属性を取得したら、その値を取得できます。

私はC#の開発者としてこれを行うためにJavaで使用される正確な構文nクラスは知りません。 これがあなたを助けてくれることを願っています。 XPath hereについて詳しく知ることができます。

関連する問題