使用 jdom 设置命名空间
我想在 xml 中使用这种格式:
<ns2: test xmlns="url" xmlns:ns2="url2" xmlns:ns3="url3">
....
</ns2: test>
我正在使用以下代码:
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);
如果我设置命名空间为:
vNewRootElement.setNamespace(ns3);
然后我得到这个:s
<ns2: test xmlns:ns2="url2" xmlns:ns3="url3"> ... </ns2: test>
without the default namespace xmlns="url".
谁能告诉我为什么它不起作用,有没有办法解决这个问题?
谢谢哈儿
I would like have this format in xml:
<ns2: test xmlns="url" xmlns:ns2="url2" xmlns:ns3="url3">
....
</ns2: test>
I am using the following code:
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);
If I set namespace with:
vNewRootElement.setNamespace(ns3);
Then I get thi:s
<ns2: test xmlns:ns2="url2" xmlns:ns3="url3"> ... </ns2: test>
without the default namespace xmlns="url".
Can anybody tell me why it dosen't work and is there a way to solve this problem?
Thanks, haner
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
以下行输出(到 System.out)
您需要
The following outputs (to System.out)
you need the line
添加如下所示的命名空间:
val root = new Element("test", "url")
这将输出:
如果您如果希望子元素也使用相同的命名空间,请在添加元素时执行此操作:
否则,默认情况下子元素将具有 xmlns=""。
Scala 中的示例代码:
这将输出:
Add the namespace like this:
val root = new Element("test", "url")
this will output:
<test xmlns="url">
if you want child elements to also use the same namespace, do this when adding the element:
otherwise, the child element will have xmlns="" by default.
Sample code in Scala:
this will output: