gpt4 book ai didi

java - JDOM 元素创建

转载 作者:行者123 更新时间:2023-11-29 03:51:43 25 4
gpt4 key购买 nike

我是 JDOM 的新手,在创建文档时遇到了问题。问题是我想要能够添加不具有“xmlns”属性的元素。我正在使用 JDOM 1.1

我找到的所有示例都显示了没有“xmlns”的输出。这是一个简单的代码片段及其输出:

      Namespace jwNS = Namespace.getNamespace("http://www.javaworld.com");
Element myElement = new Element("article", jwNS);
Document doc = new Document(myElement);
myElement.addContent(new Element("title").setText("Blah, blah, blah"));

// serialize with two space indents and extra line breaks
try {
//XMLOutputter serializer = new XMLOutputter(" ", true);
XMLOutputter serializer = new XMLOutputter(Format.getPrettyFormat());
serializer.output(doc, System.out);
}
catch (IOException e) {
System.err.println(e);
}

输出:

<?xml version="1.0" encoding="UTF-8"?>
<article xmlns="http://www.javaworld.com">
<title xmlns="">Blah, blah, blah</title>
</article>

我想要的只是拥有

<?xml version="1.0" encoding="UTF-8"?>
<article xmlns="http://www.javaworld.com">
<title>Blah, blah, blah</title>
</article>

谁能告诉我我做错了什么?

最佳答案

给定你想要的例子:

<?xml version="1.0" encoding="UTF-8"?>
<article xmlns="http://www.javaworld.com">
<title>Blah, blah, blah</title>
</article>

这意味着 <article> 的所有子元素与 <article> 具有相同的命名空间,即 namespace 是从 parent 继承给 child 的。这意味着您需要指定 jwNS对于您所有的子元素,即

myElement.addContent(new Element("title", jwNS ).setText("Blah, blah, blah"));

当呈现 XML 输出时,JDOM 应该省略来自 <title> 的显式命名空间, 因为它继承自 <article> .

仅使用 new Element("title") ,你是说你不想在 <title> 上使用命名空间,因此 JDOm 必须添加显式的 xnmns=""属性以覆盖 jwNS 的继承来自 <article> 的命名空间 parent 。

关于java - JDOM 元素创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8457301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com