2009-12-28 7 views
1

J'ai ce format de données xml. Je voudrais extraire le nom et la valeur des propriétés. J'ai essayé d'obtenir nœud par nœud mais c'est gênant.Extrait des données de XML en Java

<?xml version="1.0"> encoding="ASCII"?> 
<xDiagram> 
    <children iD="1261435145010.0" location="Point(547,184)" 
    size="Dimension(102,140)" shapeType="TestInfoShape" 
    modelEntityID="TestInfo.7"> 
    <properties> 
     <properties name="desc" type="MultiLinesText" 
     parent="this_comp1" parentName="multiLinesText" 
     modelPropName="desc" value="create test user can access"/> 
     <properties name="name" type="String" parent="this_comp2" 
     parentName="text" modelPropName="name" value="testCase1"/> 
    </properties> 
    </children> 
</xDiagram> 

Quelqu'un peut-il suggérer une meilleure façon de le faire? J'aime utiliser XPath mais il ne peut pas se verrouiller sur l'élément.

Merci

+0

où sont les données? –

+0

a fait quelques modifications, à peine assez, mais les données sont affichées maintenant. – Tom

+0

Ce fichier XML n'est pas valide. Copy'n'paste bug? Ou aussi en vrai? – BalusC

Répondre

3

XPath est l'outil idéal pour ce type de travail. Vous pouvez essayer d'améliorer votre expression XPath sur un site comme:

http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

Par exemple, cette XPath retourne un NodeList contenant tous les "Propriétés" intérieure éléments:

/xDiagram/children/properties/properties 
0

Java Streaming API for XML est également pratique (quand SAX, DOM, ou XPath ne sont pas tout à fait raison pour le travail).