我是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>有人能告诉我我做错了什么吗?
发布于 2011-12-10 15:02:44
给出你想要的例子:
<?xml version="1.0" encoding="UTF-8"?>
<article xmlns="http://www.javaworld.com">
<title>Blah, blah, blah</title>
</article>这意味着<article>的所有子元素都具有与<article>相同的名称空间,即名称空间从父元素继承到子元素。这意味着您需要为所有子元素指定jwNS,即
myElement.addContent(new Element("title", jwNS ).setText("Blah, blah, blah"));当呈现XML输出时,JDOM应该从<title>中省略显式命名空间,因为它从<article>继承它。
通过只使用new Element("title"),您就意味着您不想在<title>上使用任何名称空间,因此JDOm必须添加一个显式的xnmns=""属性,以覆盖来自<article>父级的jwNS命名空间的继承。
发布于 2011-12-10 14:56:43
尝试使用以下方法创建元素:
Element myElement = new Element("article");而不是
Element myElement = new Element("article", jwNS);https://stackoverflow.com/questions/8457301
复制相似问题