2013-03-07 67 views
0

我有兩個不同的XML,都包含相同的產品,但使用另一種語言。 問題是,我想將法語XML的描述添加到荷蘭語的描述中,但法語XML包含更多的產品。 這是我試過的,但它不起作用,因爲法文XML更大。 (另外,我相信我犯了一個錯誤,因爲產品不在同一個位置,他們只是共享相同的產品代碼(在荷蘭語XML和法語XML中命名代碼) 我應該在這裏做什麼?JDom從一個XML獲取內容到另一個

doc = (Document) builder.build(xmlFile); 
    docfrans = (Document) builder.build(xmlFilefrans); 




    root = doc.getRootElement(); 
    root.setName("productlist"); 
    List<Element> elementje = root.getChildren(); 

    rootfrans = docfrans.getRootElement(); 
    List<Element> elementjefrans = rootfrans.getChildren(); 
    for (int i = 0; i < elementjefrans.size(); i++) { 
     Element verwijderdelementfrans = elementjefrans.get(i); 
     Element verwijderdelement = elementje.get(i); 
     List<Element> lijstjefrans = verwijderdelementfrans.getChildren(); 
     List<Element> lijstje = verwijderdelement.getChildren(); 
     for (int j = 0; j < lijstjefrans.size(); j++) { 
      if (verwijderdelementfrans.getChild("artikelnummer").getText().equals(verwijderdelement.getChild("code").getText())){ 
       System.out.println("test"); 
       verwijderdelement.getChild("description").setText(verwijderdelement.getChild("description").getText()+verwijderdelementfrans.getChild("omschrijving").getText()); 
      } 
     } 
    } 

回答

0

想通了自己很多的搜索後,對於那些有興趣: SAXBuilder的建設者=新SAXBuilder的();

String eol = System.getProperty("line.separator"); 

    doc = (Document) builder.build(xmlFile); 
    docfrans = (Document) builder.build(xmlFilefrans); 





    root = doc.getRootElement(); 
    root.setName("productlist"); 
    List<Element> elementje = root.getChildren(); 

    rootfrans = docfrans.getRootElement(); 
    List<Element> elementjefrans = rootfrans.getChildren(); 

    for (int i = 0; i < elementjefrans.size(); i++) { 
     for (int k = 0; k < elementje.size(); k++) { 
      Element verwijderdelementfrans = elementjefrans.get(i); 
      Element verwijderdelement = elementje.get(k); 
//    for (int j = 0; j < lijstje.size(); j++) { 
       if (verwijderdelementfrans.getChild("artikelnummer").getText().equals(verwijderdelement.getChild("code").getText())) { 
        System.out.println("test"); 
        verwijderdelement.getChild("description").setText(verwijderdelement.getChild("description").getText() +"\n"+"\n"+ verwijderdelementfrans.getChild("omschrijving").getText()); 


       } 
//    } 
     } 
    }