JDom从一个xml到另一个xml获取内容

时间:2013-03-07 18:12:45

标签: java xml transfer jdom

我有两种不同的XML,它们都包含相同的产品,但是使用另一种语言。 问题是,我想将法语XML的描述添加到荷兰语的描述中,但法语XML包含更多的产品。 这是我尝试过的,但由于法语XML更大,它不起作用。 (另外,我认为我犯了一个错误,因为产品也不在同一个位置,它们只是共享相同的产品代码(荷兰语XML中的命名代码和法语XML中的artikelnummer)。 我该怎么办?

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

1 个答案:

答案 0 :(得分:0)

经过大量搜索后想出来,对于那些感兴趣的人:         SAXBuilder builder = new 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());


                }
//                }
        }
    }