Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml JDOM解析器和名称空间如何获取干净的内容_Xml_Jdom - Fatal编程技术网

Xml JDOM解析器和名称空间如何获取干净的内容

Xml JDOM解析器和名称空间如何获取干净的内容,xml,jdom,Xml,Jdom,我的xml: 每个元素都有名称空间。为什么会这样?我不想要命名空间。。。我想要与xml示例中相同的输出,如 <firstname xmlns="http://www.xx.com/xx">yong</firstname> <lastname xmlns="http://www.xx.com/xx">mook kim</lastname> <nickname xmlns="http://www.

我的xml:

每个元素都有名称空间。为什么会这样?我不想要命名空间。。。我想要与xml示例中相同的输出,如

 <firstname xmlns="http://www.xx.com/xx">yong</firstname>
            <lastname xmlns="http://www.xx.com/xx">mook kim</lastname>
            <nickname xmlns="http://www.xx.com/xx">mkyong</nickname>
            <salary xmlns="http://www.xx.com/xx">100000</salary>
永 木金 mkyong 100000
您得到了正确的结果。所有这些元素都是从名称空间的http://www.xx.com/xx因此,当您输出元素时,他们保留它是有道理的。请注意,在XML中,默认名称空间(不带前缀的名称空间)应用于所有作为子体但自身未重新定义默认名称空间的元素

如果这似乎是一个复杂的解释,请尝试名称空间规范:或名称空间教程:

如果不希望在这些元素上具有名称空间,可以使用以下方法删除它们:

<firstname>yong</firstname>
            <lastname>mook kim</lastname>
            <nickname>mkyong</nickname>
            <salary>100000</salary>

Rolf

您必须理解XML(以文本形式)和节点树之间的区别。在树中,没有继承的或默认的名称空间:每个元素节点都有自己的名称空间,而与它的祖先的名称空间无关。要实现所需的功能,必须更改所有元素节点的名称空间。在您的例子中,遍历getContent()返回的列表,并将每个元素的名称空间设置为NO_namespace。

我尝试了这段代码,但名称空间仍然存在。当我使用字符串xml=sb.toString()时;我仍然看到名称空间。。。
<firstname>yong</firstname>
            <lastname>mook kim</lastname>
            <nickname>mkyong</nickname>
            <salary>100000</salary>
node.setNamespace(Namespace.NO_NAMESPACE);