栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java DOM中创建以名称空间为前缀的XML节点

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java DOM中创建以名称空间为前缀的XML节点

方法错误,请尝试* NS变体:

Element mainRootElement = doc.createElementNS(   "http://abc.de/x/y/z", // namespace   "tns:cmds" // node name including prefix);

第一个参数是名称空间,第二个是节点名称,包括前缀/别名。如果需要,将自动为名称空间添加名称空间定义。它也可以将它们设置为属性。

原始来源中的名称空间为

http://abc.de/x/y/z
。通过该属性
xmlns:tns="http://abc.de/x/y/z"
tns
为名称空间定义了别名/前缀。DOM
API将为使用* NS方法创建的节点隐式添加名称空间。

xmlns
并且
xml
是特定名称空间的保留/默认名称空间前缀。
xmlns
(名称空间定义)的名称空间为
http://www.w3.org/2000/xmlns/

要使用setAttributeNS()添加xmlns:*属性,请使用xmlns命名空间:

mainRootElement.setAttributeNS(  "http://www.w3.org/2000/xmlns/", // namespace  "xmlns:xsi", // node name including prefix  "http://www.w3.org/2001/XMLSchema-instance" // value);

但这甚至是不需要的。就像元素一样,如果使用名称空间定义添加属性节点,则将隐式添加名称空间定义。

mainRootElement.setAttributeNS(  "http://www.w3.org/2001/XMLSchema-instance", // namespace  "xsi:schemaLocation", // node name including prefix  "http://abc.de/x/y/z xyzschema.xsd" // value);

命名空间前缀

如果看到类似的节点名

xsi:schemaLocation
,则可以通过查找
xmlns:xsi
属性来解决。此属性是namepace定义。该值是实际的名称空间。因此,如果您具有属性,
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
则可以将节点名称解析为
{http://www.w3.org/2001/XMLSchema-instance}schemaLocation
(Clark表示法)。

如果要创建节点,则需要3个值:

  1. 命名空间:
    http://www.w3.org/2001/XMLSchema-instance
  2. 本地节点名称:
    schemaLocation
  3. 前缀:
    xsi

该前缀对于元素节点是可选的,但对于属性节点是必需的。以下三个XML将所有解析为元素节点名称

{http://abc.de/x/y/z}cmds

  • <tns:cmds xmlns:tns="http://abc.de/x/y/z"/>
  • <cmds xmlns="http://abc.de/x/y/z"/>
  • <other:cmds xmlns:other="http://abc.de/x/y/z"/>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400016.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号