技术总结:在xml添加使用内容。
2007-07-09 16:30
393 查看
技术总结:在xml添加使用内容。
说明:下面的代码主要是采用JavaScript脚本,其它语言基本上是一样的。
一、基本的用法
1、创建xml对象:
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
2、装载基本的内容,语法说明和根节点root
xmlDoc.loadXML('<?xml version="1.0"?><root/>');
3、创建一个普通(text)节点。
var content = xmlDoc.createElement("content");
4、向节点当中放入内容
content.text = "abcd";
5、获取节点,和节点内容:
var getNode = xmlDoc.documentElement.selectSingleNode("content");
alert(getNode.text);
二、CDATA型的节点:
1、创建元素
var nn = xmlDoc.createElement("abc");
2、创建CDATA:
var mmm = xmlDoc.createCDATASection("<h1>adfce<h1>/n");
3、将CDATA附加到元素
nn.appendChild(mmm);
4、将元素作为节点附加到xml
xmlDoc.documentElement.appendChild(nn);
三、获取节点的几种方式
1、获取单个节点
var getNode = xmlDoc.documentElement.selectSingleNode("content");
alert(getNode.text);
其中xmlDoc.documentElement.selectSingleNode("content")等效于xmlDoc.selectSingleNode("/root/content");
这是因为xmlDoc.documentElement其实就是表示xml的根节点,这里面就是实际上的<root></root>下面这段代码也许能够说明问题:
var getNode = xmlDoc.selectSingleNode("root");
var a = getNode.selectSingleNode("content");
2、通过标签名
这种方面获取的,实际上是一个数组,哪怕实际上在xml中只有一个符合结果的标签名。
var getNode = xmlDoc.getElementsByTagName("content");
alert(getNode[0].text);
例子中,没有循环罗列数组,只显示第一个。
3、通过xpath获取
通上,这也是一个数组。
var getNode = xmlDoc.selectNodes("/root/content");
alert(getNode[0].text);
四、要不要CDATA?
1、普通的方式
经过这种方式斌值 content.text = "<![CDATA[<h1>adfce<h1>]]>";
如果直接斌值,经过在IE6上测试,将会对文本中"<" ">" "&"对三个字符进行编码得到“<”“>”“&”。
content.text = "<![CDATA[<h1>adfce<h1>]]>";
这时候content.xml实际上是“<content><![CDATA[<h1>adfce<h1>]]></content>”
但是,取值的时候,就会将编码还原。
var m = content.text
这时候得到的m仍然是<![CDATA[<h1>adfce<h1>]]>
小结:也就是说,对于html代码、文本来说,存储到xml中,只用普通的text一般情况也没有什么问题。
2、使用CDATA
在前面“二”部分创建了一个Element: abc,
var getNode = xmlDoc.selectNodes("/root/abc");
alert(getNode[0].text);
alert(getNode[0].xml);
运行之后得到的代码:结果是
getNode[0].text ==>> <h1>adfce<h1>
getNode[0].xml ==>> <![CDATA[<h1>adfce<h1>]]>
小结:放在CDATA类型节点中的数据,xml是不会对其进行编码和解码的。
3、总结:
对于文本和html格式的数据,用不用CDATA区别不大。
五、部分测试代码
function testCDATA(){
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.loadXML('<?xml version="1.0"?><root/>');
var content = xmlDoc.createElement("content");
//var n_content = "abc123";
var n_content = "<h1>adfce<h1>";
content.text = "<![CDATA[" + n_content + "]]>";
xmlDoc.documentElement.appendChild(content);
alert(xmlDoc.xml);
var nn = xmlDoc.createElement("abc");
var mmm = xmlDoc.createCDATASection("<h1>adfce<h1>/n");
//alert(mmm.xml);
nn.appendChild(mmm);
xmlDoc.documentElement.appendChild(nn);
//alert(xmlDoc.xml);
//alert(nn.text);
var getNode = xmlDoc.documentElement.selectSingleNode("content");
var getNode = xmlDoc.selectSingleNode("/root/content");
var getNode = xmlDoc.selectSingleNode("root");
var a = getNode.selectSingleNode("content");
//alert(a.text);
var getNode = xmlDoc.getElementsByTagName("content");
var getNode = xmlDoc.selectNodes("/root/content");
alert(getNode[0].text);
alert(getNode[0].xml);
var getNode = xmlDoc.selectNodes("/root/abc");
alert(getNode[0].text);
alert(getNode[0].xml);
}
说明:下面的代码主要是采用JavaScript脚本,其它语言基本上是一样的。
一、基本的用法
1、创建xml对象:
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
2、装载基本的内容,语法说明和根节点root
xmlDoc.loadXML('<?xml version="1.0"?><root/>');
3、创建一个普通(text)节点。
var content = xmlDoc.createElement("content");
4、向节点当中放入内容
content.text = "abcd";
5、获取节点,和节点内容:
var getNode = xmlDoc.documentElement.selectSingleNode("content");
alert(getNode.text);
二、CDATA型的节点:
1、创建元素
var nn = xmlDoc.createElement("abc");
2、创建CDATA:
var mmm = xmlDoc.createCDATASection("<h1>adfce<h1>/n");
3、将CDATA附加到元素
nn.appendChild(mmm);
4、将元素作为节点附加到xml
xmlDoc.documentElement.appendChild(nn);
三、获取节点的几种方式
1、获取单个节点
var getNode = xmlDoc.documentElement.selectSingleNode("content");
alert(getNode.text);
其中xmlDoc.documentElement.selectSingleNode("content")等效于xmlDoc.selectSingleNode("/root/content");
这是因为xmlDoc.documentElement其实就是表示xml的根节点,这里面就是实际上的<root></root>下面这段代码也许能够说明问题:
var getNode = xmlDoc.selectSingleNode("root");
var a = getNode.selectSingleNode("content");
2、通过标签名
这种方面获取的,实际上是一个数组,哪怕实际上在xml中只有一个符合结果的标签名。
var getNode = xmlDoc.getElementsByTagName("content");
alert(getNode[0].text);
例子中,没有循环罗列数组,只显示第一个。
3、通过xpath获取
通上,这也是一个数组。
var getNode = xmlDoc.selectNodes("/root/content");
alert(getNode[0].text);
四、要不要CDATA?
1、普通的方式
经过这种方式斌值 content.text = "<![CDATA[<h1>adfce<h1>]]>";
如果直接斌值,经过在IE6上测试,将会对文本中"<" ">" "&"对三个字符进行编码得到“<”“>”“&”。
content.text = "<![CDATA[<h1>adfce<h1>]]>";
这时候content.xml实际上是“<content><![CDATA[<h1>adfce<h1>]]></content>”
但是,取值的时候,就会将编码还原。
var m = content.text
这时候得到的m仍然是<![CDATA[<h1>adfce<h1>]]>
小结:也就是说,对于html代码、文本来说,存储到xml中,只用普通的text一般情况也没有什么问题。
2、使用CDATA
在前面“二”部分创建了一个Element: abc,
var getNode = xmlDoc.selectNodes("/root/abc");
alert(getNode[0].text);
alert(getNode[0].xml);
运行之后得到的代码:结果是
getNode[0].text ==>> <h1>adfce<h1>
getNode[0].xml ==>> <![CDATA[<h1>adfce<h1>]]>
小结:放在CDATA类型节点中的数据,xml是不会对其进行编码和解码的。
3、总结:
对于文本和html格式的数据,用不用CDATA区别不大。
五、部分测试代码
function testCDATA(){
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.loadXML('<?xml version="1.0"?><root/>');
var content = xmlDoc.createElement("content");
//var n_content = "abc123";
var n_content = "<h1>adfce<h1>";
content.text = "<![CDATA[" + n_content + "]]>";
xmlDoc.documentElement.appendChild(content);
alert(xmlDoc.xml);
var nn = xmlDoc.createElement("abc");
var mmm = xmlDoc.createCDATASection("<h1>adfce<h1>/n");
//alert(mmm.xml);
nn.appendChild(mmm);
xmlDoc.documentElement.appendChild(nn);
//alert(xmlDoc.xml);
//alert(nn.text);
var getNode = xmlDoc.documentElement.selectSingleNode("content");
var getNode = xmlDoc.selectSingleNode("/root/content");
var getNode = xmlDoc.selectSingleNode("root");
var a = getNode.selectSingleNode("content");
//alert(a.text);
var getNode = xmlDoc.getElementsByTagName("content");
var getNode = xmlDoc.selectNodes("/root/content");
alert(getNode[0].text);
alert(getNode[0].xml);
var getNode = xmlDoc.selectNodes("/root/abc");
alert(getNode[0].text);
alert(getNode[0].xml);
}
相关文章推荐
- TEC1401.Report开发技术总结 - 第六章 使用BI Publisher开发报表-创建XML数据源(1/5)
- 关于后台动态模板添加内容的总结 Builder使用
- 使用Java的输入输出流技术将Input.txt的内容逐行读出,每读出一行就顺序为其添加行号(从1开始,逐行递增),并写入到另一个文本文件Output.txt中
- WebService技术总结(三):项目实战——使用XML,dom4j,Xpath实现远程调用
- 使用dom4j解析xml标签,将标签属性与文本内容添加进集合
- Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的
- 使用jQuery动态创建一个表格(根据用户输入的内容添加一行数据,并且能逐行删除)
- XML总结(2)-Schema技术
- Storm使用到的相关技术总结
- 演示使用DOM技术如何动态生成新的XML文档
- 使用DOM技术来对XML文档进行解析范例
- (六)Webxml文件中添加taglib以及在页面中使用标签
- vue 使用Slot 分发内容 学习总结。
- [C#] .NET Core/Standard 1.X 项目中如何使用XmlIgnoreAttribute等标准范围外的内容,兼谈如何解决“violation of security transparency rules failed”(违反安全透明规则失败)异常
- C#基础知识总结(不定时添加新内容)
- 项目总结一:页面弹出框+表单输入与校验形式,实现添加内容到页面
- xmpp 如何添加全部好友(使用了listview + checkbox)技术
- Android布局中LayoutInflater的使用(利用代码添加xml形式的Layout布局)
- Cmarkup 使用总结 xml解析
- Ajax学习笔记,原生Ajax,使用XMLHttpRequest读取xml内容