Problème avec le parse d'un fichier xml
je suis entrain de parser ce fichier XML avec JDOM:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
<?xml version="1.0" encoding="ASCII"?>
<orm:entity-mappings xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" version="2.0">
<orm:access>FIELD</orm:access>
<orm:entity class="org.eclipse.emf.texo.test.model.samples.library.Book" name="Book">
<orm:attributes>
<orm:basic name="title" optional="true"/>
<orm:basic name="pages" optional="true"/>
<orm:basic name="category" optional="true"/>
<orm:many-to-one name="author" optional="false" target-entity="org.eclipse.emf.texo.test.model.samples.library.Writer">
<orm:cascade>
<orm:cascade-persist/>
<orm:cascade-merge/>
<orm:cascade-refresh/>
</orm:cascade>
</orm:many-to-one>
</orm:attributes>
</orm:entity>
<orm:entity class="org.eclipse.emf.texo.test.model.samples.library.Writer" name="Writer">
<orm:attributes>
<orm:basic name="name" optional="true"/>
<orm:one-to-many name="books" target-entity="org.eclipse.emf.texo.test.model.samples.library.Book">
<orm:order-column/>
<orm:join-table name="Writer_books"/>
<orm:cascade>
<orm:cascade-persist/>
<orm:cascade-merge/>
<orm:cascade-refresh/>
</orm:cascade>
</orm:one-to-many>
</orm:attributes>
</orm:entity>
<orm:entity class="org.eclipse.emf.texo.test.model.samples.library.Library" name="Library">
<orm:attributes>
<orm:basic name="name" optional="true"/>
<orm:one-to-many name="writers" target-entity="org.eclipse.emf.texo.test.model.samples.library.Writer">
<orm:order-column/>
<orm:join-column/>
<orm:cascade>
<orm:cascade-all/>
</orm:cascade>
</orm:one-to-many>
<orm:one-to-many name="books" target-entity="org.eclipse.emf.texo.test.model.samples.library.Book">
<orm:order-column/>
<orm:join-column/>
<orm:cascade>
<orm:cascade-all/>
</orm:cascade>
</orm:one-to-many>
</orm:attributes>
</orm:entity>
</orm:entity-mappings> |
le fichier Java de Parse est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
public class Parseur {
public static void main(String[] args) throws Exception {
SAXBuilder sxb=new SAXBuilder();
Document document=sxb.build(new File("orm.xml"));
Element entity=document.getRootElement();//entity xml
List<Element>classes=entity.getChildren();
for(Element classe:classes){
String nom_classe=classe.getAttributeValue("name");
System.out.println(nom_classe);
List<Element> attributs=classe.getChildren();
for (Element attribut:attributs)
{
List<Element> sousattribs=attribut.getChildren();
for (Element sousattrib:sousattribs)
{
String nom=attribut.getAttributeValue("basic name");
// J'ai essayé aussi avec "name" au lieu de "basic name"
System.out.println(nom);
}
}
}
}
} |
sauf que j'ai rencontré 2 problèmes:
1/ J'arrive à voir les noms des classes qui sont ("Book, Writer,Library") mais avec en plus une valeur "null" que j'ai pas pu l'enlever.
2/ Pour les noms des attributs de classe, ils prennent tous la valeurs "null".
je suis vraiment bloqué dans cette étape.:arf: