Java DOM,命名空间/版本问题

标签 java xml dom namespaces

我正在为我正在开发的 RMI 程序创建 XML 作为节点,但我遇到了一个问题。我可以使用 DOM 创建 XML,但我很难将命名空间和版本添加到 XML 的顶部。我尝试过使用 setAttribute 和 setAttributeNS 但目前不知道还能做什么。

创建元素的java代码是:

DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
            Document doc = docBuilder.newDocument();

            Node root = doc.createElement("Request");
            doc.appendChild(root);

//code ommited

我目前得到的结果是:

<Request>
    <Identification>
        <UserID>user</UserID>
        <Password>pass</Password>
    </Identification>
</Request>

在请求部分,我需要它看起来像:

<Request xsi:noNamespaceSchemaLocation="URL" Version="1.0">

任何有助于解决此问题的帮助将不胜感激!

谢谢

最佳答案

我想你会想要这样的东西:

...
Element root = doc.createElement("Request");
root.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation", "URL");
root.setAttribute("Version", "1.0");
doc.appendChild(root);
...

root 定义为 Element 将为您提供 .setAttribute* 方法。

这会给你

<Request Version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="URL"/>

我知道其中包含更多内容,但需要 xmlns:xsi 属性才能定义 xsi 命名空间。

关于Java DOM,命名空间/版本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6371825/

相关文章:

Java 流映射 T -> ?T :List<T>

java - Android 上的原生方法如何与电源管理生命周期交互?

java - 同步对类字段的访问

javascript - 修改除一个之外的所有 $scope.thing

javascript - 如何将外部html文件读取为DOM树?

java swing无法扩展JFrame的高度?

Python QuickBase API 帮助

java - 验证 Xml、Xsd 并转换为其他 Xml

php - 简单的 HTML Dom : How to remove elements?

xml - 如何删除 spring mvc @ResponseBody 的 XML header ?