0

2つの異なる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());
            }
        }
    }
4

1 に答える 1

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


                }
//                }
        }
    }
于 2013-03-07T22:50:25.057 に答える