【问题标题】:setting namespace true while parsing in dom4j在 dom4j 中解析时设置命名空间为 true
【发布时间】:2012-11-01 11:34:41
【问题描述】:

我正在使用 dom4j 解析一个 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 是因为代码简单。

【问题讨论】:

    标签: java xml-parsing xml-namespaces dom4j


    【解决方案1】:

    不同意。这个sn-p

        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 参数,而不是文件名。相反,请尝试为读者提供FileInputStreamURL

     reader.read(new File("C:/test.xml"))
    

    【讨论】:

      猜你喜欢
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 2019-07-09
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多