首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDOM元素创建

JDOM元素创建
EN

Stack Overflow用户
提问于 2011-12-10 14:48:58
回答 2查看 2.3K关注 0票数 2

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

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

代码语言:javascript
复制
      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);
}

输出:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<article xmlns="http://www.javaworld.com">
  <title xmlns="">Blah, blah, blah</title>
</article>

我想要的是

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<article xmlns="http://www.javaworld.com">
  <title>Blah, blah, blah</title>
</article>

有人能告诉我我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-10 15:02:44

给出你想要的例子:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<article xmlns="http://www.javaworld.com">
  <title>Blah, blah, blah</title>
</article>

这意味着<article>的所有子元素都具有与<article>相同的名称空间,即名称空间从父元素继承到子元素。这意味着您需要为所有子元素指定jwNS,即

代码语言:javascript
复制
myElement.addContent(new Element("title", jwNS ).setText("Blah, blah, blah"));

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

通过只使用new Element("title"),您就意味着您不想在<title>上使用任何名称空间,因此JDOm必须添加一个显式的xnmns=""属性,以覆盖来自<article>父级的jwNS命名空间的继承。

票数 4
EN

Stack Overflow用户

发布于 2011-12-10 14:56:43

尝试使用以下方法创建元素:

代码语言:javascript
复制
Element myElement = new Element("article");

而不是

代码语言:javascript
复制
Element myElement = new Element("article", jwNS);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8457301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档