0

以下のようにdom4jを使用して1つのxmlドキュメントを解析しています

            SAXReader reader = new SAXReader();
    document = reader.read("C:/test.xml");

しかし、以下のようにxmlを書いたときにそこにあった名前空間は保持されません

    FileOutputStream fos = new FileOutputStream("c:/test.xml");

    OutputFormat format = OutputFormat.createPrettyPrint();

    XMLWriter writer = new XMLWriter(fos, format);


    writer.write(document);

    writer.flush();

dom4j を使用してこれを行う方法。コードが簡単なため、dom4j を使用しています。

4

1 に答える 1

0

同意しないでください。このスニペット

    System.out.println(new SAXReader()
            .read(new ByteArrayInputStream("<a:c xmlns:a='foo'/>"
                    .getBytes(Charset.forName("utf-8")))).getRootElement()
            .getNamespaceURI());

印刷します

foo

問題は、SAXReader#read(String)メソッドがSystem IDファイル名ではなく引数を取ることです。File代わりに、リーダーに、または 、またはInputStreamをフィードしてみてくださいURL

 reader.read(new File("C:/test.xml"))
于 2012-11-04T01:40:35.360 に答える