首页 > 其他分享 >js XML 命名空间

js XML 命名空间

时间:2024-02-06 23:02:37浏览次数:18  
标签:XML namespaceURI svg js 空间 命名 localName 属性

Node 的变化 在 DOM2 中,Node 类型包含以下特定于命名空间的属性:

 namespaceURI,节点的命名空间 URL,如果未指定则为 null;
 prefix,命名空间前缀,如果未指定则为 null。

在节点使用命名空间前缀的情况下,nodeName 等于 prefix + ":" + localName。比如下面这个例子:

<head> 
 <title>Example XHTML page</title> 
 </head> 
 <body> 
 <s:svg xmlns:s="http://www.w3.org/2000/svg" version="1.1" 
 viewBox="0 0 100 100" style="width:100%; height:100%"> 
 <s:rect x="0" y="0" width="100" height="100" style="fill:red" /> 
 </s:svg> 
 </body> 
</html>

其中的元素的 localName 和 tagName 都是"html",namespaceURL 是"http://www.w3. org/1999/xhtml",而 prefix 是 null。对于<s:svg>元素,localName 是"svg",tagName 是"s:svg",namespaceURI是"https://www.w3.org/2000/svg",而 prefix 是"s"。 DOM3 进一步增加了如下与命名空间相关的方法:

 lookupNamespaceURI(prefix),返回给定 prefix 的命名空间 URI;
 lookupPrefix(namespaceURI),返回给定 namespaceURI 的前缀。

对前面的例子,可以执行以下代码:

xhtml")); // true 
// 假设 svg 包含对<s:svg>元素的引用
console.log(svg.lookupPrefix("http://www.w3.org/2000/svg")); // "s" 
console.log(svg.lookupNamespaceURI("s")); // "http://www.w3.org/2000/svg"

这些方法主要用于通过元素查询前面和命名空间 URI,以确定元素与文档的关系。 Document 的变化 DOM2 在 Document 类型上新增了如下命名空间特定的方法:

间 namespaceURI 的一个新元素;
 createAttributeNS(namespaceURI, attributeName),以给定的属性名 attributeName
创建指定命名空间 namespaceURI 的一个新属性;
 getElementsByTagNameNS(namespaceURI, tagName),返回指定命名空间 namespaceURI
中所有标签名为 tagName 的元素的 NodeList。

使用这些方法都需要传入相应的命名空间 URI(不是命名空间前缀),如下面的例子所示:

let ksvg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); 
// 创建一个任意命名空间的新属性
let att = document.createAttributeNS("http://www.somewhere.com", "random"); 
// 获取所有 XHTML 元素
let elems = document.getElementsByTagNameNS("http://www.w3.org/1999/xhtml", "*");

这些命名空间特定的方法只在文档中包含两个或两个以上命名空间时才有用。 .Element 的变化 DOM2 Core 对 Element 类型的更新主要集中在对属性的操作上。下面是新增的方法:

localName 的属性;
 getAttributeNodeNS(namespaceURI, localName),取得指定命名空间 namespaceURI 中
名为 localName 的属性节点;
 getElementsByTagNameNS(namespaceURI, tagName),取得指定命名空间 namespaceURI
中标签名为 tagName 的元素的 NodeList;
 hasAttributeNS(namespaceURI, localName),返回布尔值,表示元素中是否有命名空间
namespaceURI 下名为 localName 的属性(注意,DOM2 Core 也添加不带命名空间的
hasAttribute()方法);
 removeAttributeNS(namespaceURI, localName),删除指定命名空间 namespaceURI 中名为 localName 的属性;
 setAttributeNS(namespaceURI, qualifiedName, value),设置指定命名空间 namespaceURI
中名为 qualifiedName 的属性为 value;
 setAttributeNodeNS(attNode),为元素设置(添加)包含命名空间信息的属性节点 attNode。

这些方法与 DOM1 中对应的方法行为相同,除 setAttributeNodeNS()之外都只是多了一个命名 空间参数。 NamedNodeMap 的变化 NamedNodeMap 也增加了以下处理命名空间的方法。因为 NamedNodeMap 主要表示属性,所以这 些方法大都适用于属性:

localName 的项;
 removeNamedItemNS(namespaceURI, localName),删除指定命名空间 namespaceURI 中
名为 localName 的项;
 setNamedItemNS(node),为元素设置(添加)包含命名空间信息的节点。

这些方法很少使用,因为通常都是使用元素来访问属性。

标签:XML,namespaceURI,svg,js,空间,命名,localName,属性
From: https://blog.51cto.com/u_16251183/9632402

相关文章

  • js DOM2 和 DOM3
    DOM2(DOMLevel2)和DOM3(DOMLevel3)在这些结构之上加入更多交互能力,提供了更高级的XML特性。实际上,DOM2和DOM3是按照模块化的思路来制定标准的,每个模块之间有一定关联,但分别针对某个DOM子集。这些模式如下所示。DOMCore:在DOM1核心部分的基础上,为节点增加方法和属性。......
  • js 插入标记
    HTML5将IE发明的innerHTML和outerHTML纳入了标准,但还有两个属性没有入选。这两个剩下的属性是innerText和outerText。innerText属性innerText属性对应元素中包含的所有文本内容,无论文本在子树中哪个层级。在用于读取值时,innerText会按照深度优先的顺序将子树中所有文......
  • js scrollIntoView()
    DOM规范中没有涉及的一个问题是如何滚动页面中的某个区域。为填充这方面的缺失,不同浏览器实现了不同的控制滚动的方式。在所有这些专有方法中,HTML5选择了标准化scrollIntoView()。scrollIntoView()方法存在于所有HTML元素上,可以滚动浏览器窗口或容器元素以便包含元素进入视口......
  • js 字符集属性
    HTML5增加了几个与文档字符集有关的新属性。其中,characterSet属性表示文档实际使用的字符集,也可以用来指定新字符集。这个属性的默认值是"UTF-16",但可以通过元素或响应头,以及新增的characterSeet属性来修改。下面是一个例子:document.characterSet="UTF-8";自定义数据属性HTM......
  • js 焦点管理
    HTML5增加了辅助DOM焦点管理的功能。首先是document.activeElement,始终包含当前拥有焦点的DOM元素。页面加载时,可以通过用户输入(按Tab键或代码中使用focus()方法)让某个元素自动获得焦点。例如:```letbutton=document.getElementById("myButton");button.focus();conso......
  • 【nw.js】使用nw.js将html页面打包成exe免安装程序
    @[TOC]一、批处理zip命令(已有可跳过此步骤)下载zip,你可以到该网址下载zip执行文件,如下图:将文件路径配置到环境变量中,具体操作如下:右键计算机——>属性——>高级系统设置——>高级——>环境变量——>系统变量——>找到path,双击——>新建——>将所在路径添加进去(如:“F:\zip”包含进环......
  • spring boot controller设置返回json
    在SpringBoot中,Controller通常会返回JSON格式的数据,这得益于SpringBoot的自动配置能力以及内嵌的Jackson库。以下是如何设置Controller返回JSON数据的基本步骤:添加依赖:首先,确保你的项目中包含了SpringBoot的WebStarter依赖,它已经包括了Jackson库,用于处理JSON序列化。<dependen......
  • app.json 中未定义自定义编译中指定的启动页面
    换了启动页,这里得手动改。。。。。。。。。。。[app.json或自定义编译条件错误]app.json中未定义自定义编译中指定的启动页面./pages/index/index(env:Windows),......
  • nodejs学习计划--(三)http协议和IP介绍
    一、HTPP协议1、概念HTTP(hypertexttransportprotocol)协议;中文叫超文本传输协议是一种基于TCP/IP的应用层通信协议这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。协议中主要规定了两个方面的内容客户端:用来向服务器发送数据,可以被称之为请求报文服务端......
  • js相关知识
    toFixed(num)只保留小数点后几位例如:console.log(0.1+0.2)   //0.300000000000004console.log((0.1+0.2).toFixed(1));   //输出值为0.3 === 比较运算符,要求数值和数值类型都要相等,返回truedocument.writeln(数据) 能将数据输出到页面上 遍历数组的两种方......