структура файла XML хороша для разбора в JAVA - PullRequest
0 голосов
/ 14 марта 2011

у меня есть файл XML, я не знаю, структура хороша или нет

моя проблема: Я не могу получить * определенные категории sous_categories *, которые принадлежат к * току тока ** **

для примера: категория с id_cat = 1; я хочу получить два sous_categorie 1 и 2.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<categories>
    <categorie id_cat="1" titre="Tourisme">
        <sous_categorie id_sscat="1">
            <titre>Office de tourisme</titre>
            <description>Office de tourisme</description>
            <icone>http://www.testURL.fr/images/cat/restaurant.png</icone>
        </sous_categorie>
        <sous_categorie id_sscat="2" >
            <titre>Monuments/Site historique ou archéologique</titre>
            <description>Monuments/Site historique ou archéologique</description>
            <icone>http://www.testURL.fr/images/cat/museum-historical.png</icone>
        </sous_categorie>
    </categorie>
    <categorie id_cat="2" titre="Paysager">
        <sous_categorie id_sscat="6">
            <titre>Parc</titre>
            <description>Parc</description>
            <icone>http://www.testURL.fr/images/cat/park-urban.png</icone>
        </sous_categorie>
        <sous_categorie id_sscat="7">
            <titre>Réserve naturelle</titre>
            <description>Réserve naturelle</description>
            <icone>http://www.testURL.fr/images/cat/riparian.png</icone>
        </sous_categorie>
        <sous_categorie id_sscat="8">
            <titre>Site de loisir naturel ou aménagé</titre>
            <description>Site de loisir naturel ou aménagé</description>
            <icone>http://www.testURL.fr/images/cat/park.png</icone>
        </sous_categorie>
    </categorie>
    <categorie id_cat="3" titre="Arts et Culture">
        <sous_categorie id_sscat="10">
            <titre>Musée</titre>
            <description>Musée</description>
            <icone>http://www.testURL.fr/images/cat/museum.png</icone>
        </sous_categorie>       
    </categorie>
</categories>

спасибо

Ответы [ 2 ]

2 голосов
/ 14 марта 2011

Ваш XML не правильно сформирован.У вас есть две сущности верхнего уровня (и первая не завершена):

<xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<categories>
    <!-- ... -->
</categories>

Это должно быть переписано:

<categories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- ... -->
</categories>
0 голосов
/ 16 марта 2011

Я нашел ответ

ArrayCategory=new ArrayList<Category>();
    //get the root element
    //2
    Element docEle = dom.getDocumentElement();
    NodeList nl = docEle.getElementsByTagName("categorie");
    //3
    if(nl != null && nl.getLength() > 0) {
        //3.1

        for(int i = 0 ; i < nl.getLength();i++) {
            //3.1               
            Element element_categorie = (Element)nl.item(i);
            //3.2               
            String id_cat=element_categorie.getAttribute("id_cat");
            String titreCat=element_categorie.getAttribute("titre");
            String uriicon = getTextValue(element_categorie,"icone");

            Category catTemp = new Category(id_cat, titreCat, uriicon);
            catTemp.vsousCat= new ArrayList<Sous_category>();

            //3.4
            //NodeList sscatList= e1.getElementsByTagName("sous_categorie");
            NodeList sousNodeList =     element_categorie.getElementsByTagName("sous_categorie");
            for(int j=0; j<sousNodeList.getLength();j++){
                //3.4.1
                Element sous_element_categorie = (Element) sousNodeList.item(j);
                //3.4.2
                String s_idcat = sous_element_categorie.getAttribute("id_sscat");
                String s_titre=         getTextValue(sous_element_categorie,"titre");
                String s_description=   getTextValue(sous_element_categorie,"description");
                String s_uriicon =      getTextValue(sous_element_categorie,"icone");

                Sous_category sous_catTemp = new Sous_category(s_idcat, s_titre, s_description, s_uriicon);

                //3.4.3 Ajouter SubCatTemp à Cate
                catTemp.vsousCat.add(sous_catTemp);
                //catTemp.sousCat.add(subTemp);
            }

            //add Category to the Arraylist of Category
            ArrayCategory.add(catTemp);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...