小编han*_*ner的帖子

使用jdom设置命名空间

我想在xml中使用这种格式:

<ns2: test xmlns="url" xmlns:ns2="url2" xmlns:ns3="url3">
....
</ns2: test>
Run Code Online (Sandbox Code Playgroud)

我使用以下代码:

    Namespace ns= Namespace.getNamespace("url");
    Namespace ns2 = Namespace.getNamespace("ns2", "url2");
    Namespace ns3= Namespace.getNamespace("ns3", "url3");

    SAXBuilder vDocBuilder = new SAXBuilder();
    Document vDocument = vDocBuilder.build(File);

    System.out.println("Root element " + vDocument.getRootElement().getName());

    org.jdom.Element test = new org.jdom.Element("test", ns);
    vDocument.setRootElement(test);
    vNewRootElement.addNamespaceDeclaration(ns2);
    vNewRootElement.addNamespaceDeclaration(ns3);
Run Code Online (Sandbox Code Playgroud)

如果我设置名称空间:

    vNewRootElement.setNamespace(ns3);
Run Code Online (Sandbox Code Playgroud)

然后我得到了

    <ns2: test xmlns:ns2="url2" xmlns:ns3="url3"> ... </ns2: test> 
without the default namespace xmlns="url".
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么它不起作用,有没有办法解决这个问题?

谢谢,哈纳

java xml-namespaces jdom

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jdom ×1

xml-namespaces ×1