2010-12-01 7 views
0

J'ai un XML statique quelque chose comme ça. C'est fondamentalement une sorte de configuration.comment lire dynamiquement la valeur du nœud xml?

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

pour un scoCode, je donné veux savoir quelle est sa valeur foo et bar valeur? Puisqu'il est statique, dois-je analyser une fois dans un bloc statique et le convertir en une sorte de DTO et mettre les DTO dans une collection (liste, ensemble etc) de sorte que les éléments (DTO) peuvent être facilement cherché?

Répondre

4

essayer cette

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

Cheers, Borut

1

Vous devez utiliser des expressions XPath. Pour sélectionner tout l'attribut foo, vous pouvez utiliser l'expression XPath '// @ foo'. Une fois que vous avez tous les attributs, vous pouvez obtenir leurs valeurs.

Je ne connais pas la syntaxe exacte n classes utilisées en Java pour faire cela car je suis développeur C#. J'espère que cela vous aidera. Vous pouvez obtenir plus d'informations sur XPath here.

Questions connexes