XML常用操作总结_AX
Ⅰ*.cs部分
ⅡJS部分
博客园→斧头帮少帮主
using System;
using System.Collections.Generic;
using System.Text;
namespace OperateXML
{
class Program
{
static void Main(string[] args)
{
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Xml.XmlWriter xtw = new System.Xml.XmlTextWriter(sw);
xtw.WriteStartDocument();
xtw.WriteStartElement("Root");
xtw.WriteStartElement("Node_AX");
xtw.WriteAttributeString("Attribute", "AttributeValue0");
xtw.WriteString("AXzhz");//----好像WriteString()与WriteValue()没有区别----
xtw.WriteEndElement();
xtw.WriteStartElement("Node");
xtw.WriteAttributeString("Attribute", "AttributeValue1");
xtw.WriteValue("<AX1>");//-------
xtw.WriteEndElement();
xtw.WriteStartElement("Node");
xtw.WriteAttributeString("Attribute", "AttributeValue2");
xtw.WriteString("<AX>");//------
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndDocument();
//Output:【注】一个XML文档只有一个根节点,JS中亦然.
//<?xml version="1.0" encoding="utf-16"?>
//<Root>
// <Node_AX Attribute="AttributeValue0">AXzhz</Node_AX>
// <Node Attribute="AttributeValue1"><AX1></Node>
// <Node Attribute="AttributeValue2"><AX></Node>
//</Root>
Console.WriteLine(sw.ToString());
Console.WriteLine("-----------------上生成,下使用---------------");
System.Xml.XmlDocument xmlDom = new System.Xml.XmlDocument();
xmlDom.LoadXml(sw.ToString());
//【添加一个节点】
System.Xml.XmlNode newNode = xmlDom.DocumentElement.ChildNodes[1].Clone();
newNode.Attributes["Attribute"].Value = "NewNode";
newNode.InnerText = "NewNodeText";
xmlDom.DocumentElement.AppendChild(newNode);
//【Get Attributes】
//大小写Sensitive
System.Xml.XmlNodeList xnl = xmlDom.GetElementsByTagName("Node_AX");
//AttributeValue0
Console.WriteLine(xnl[0].Attributes["Attribute"].Value);
//【取所有名为【Node】的节点集合的两种方法.】
//-----------Method1----------
xnl = xmlDom.GetElementsByTagName("Node");
for (int i = 0; i < xnl.Count; i++)
{
Console.WriteLine(xnl[i].InnerText);
}
//-----------Method2----------
xnl = xmlDom.SelectNodes("Root/Node");
for (int i = 0; i < xnl.Count; i++)
{
Console.WriteLine(xnl[i].InnerText);
}
//【Get node's Content】
//取第一个节点名为【Node】的节点
System.Xml.XmlNode xn = xmlDom.SelectSingleNode("Root/Node");
//<AX1>
Console.WriteLine(xn.InnerText);
//<AX1>
Console.WriteLine(xn.InnerXml);
//【获得相邻节点】
Console.WriteLine(xn.PreviousSibling.InnerXml);
//■■■■■■■■■■■■■■■■■■■■■■■■■■
//■【注】不要取节点的Value,是Null,暂时还不知道Why ■
//■■■■■■■■■■■■■■■■■■■■■■■■■■
Console.WriteLine(xn.PreviousSibling.Value);
Console.WriteLine(xn.NextSibling.InnerText);
//【Delete oneself,xn不是根节点】
xn.ParentNode.RemoveChild(xn);
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Text;
namespace OperateXML
{
class Program
{
static void Main(string[] args)
{
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Xml.XmlWriter xtw = new System.Xml.XmlTextWriter(sw);
xtw.WriteStartDocument();
xtw.WriteStartElement("Root");
xtw.WriteStartElement("Node_AX");
xtw.WriteAttributeString("Attribute", "AttributeValue0");
xtw.WriteString("AXzhz");//----好像WriteString()与WriteValue()没有区别----
xtw.WriteEndElement();
xtw.WriteStartElement("Node");
xtw.WriteAttributeString("Attribute", "AttributeValue1");
xtw.WriteValue("<AX1>");//-------
xtw.WriteEndElement();
xtw.WriteStartElement("Node");
xtw.WriteAttributeString("Attribute", "AttributeValue2");
xtw.WriteString("<AX>");//------
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndDocument();
//Output:【注】一个XML文档只有一个根节点,JS中亦然.
//<?xml version="1.0" encoding="utf-16"?>
//<Root>
// <Node_AX Attribute="AttributeValue0">AXzhz</Node_AX>
// <Node Attribute="AttributeValue1"><AX1></Node>
// <Node Attribute="AttributeValue2"><AX></Node>
//</Root>
Console.WriteLine(sw.ToString());
Console.WriteLine("-----------------上生成,下使用---------------");
System.Xml.XmlDocument xmlDom = new System.Xml.XmlDocument();
xmlDom.LoadXml(sw.ToString());
//【添加一个节点】
System.Xml.XmlNode newNode = xmlDom.DocumentElement.ChildNodes[1].Clone();
newNode.Attributes["Attribute"].Value = "NewNode";
newNode.InnerText = "NewNodeText";
xmlDom.DocumentElement.AppendChild(newNode);
//【Get Attributes】
//大小写Sensitive
System.Xml.XmlNodeList xnl = xmlDom.GetElementsByTagName("Node_AX");
//AttributeValue0
Console.WriteLine(xnl[0].Attributes["Attribute"].Value);
//【取所有名为【Node】的节点集合的两种方法.】
//-----------Method1----------
xnl = xmlDom.GetElementsByTagName("Node");
for (int i = 0; i < xnl.Count; i++)
{
Console.WriteLine(xnl[i].InnerText);
}
//-----------Method2----------
xnl = xmlDom.SelectNodes("Root/Node");
for (int i = 0; i < xnl.Count; i++)
{
Console.WriteLine(xnl[i].InnerText);
}
//【Get node's Content】
//取第一个节点名为【Node】的节点
System.Xml.XmlNode xn = xmlDom.SelectSingleNode("Root/Node");
//<AX1>
Console.WriteLine(xn.InnerText);
//<AX1>
Console.WriteLine(xn.InnerXml);
//【获得相邻节点】
Console.WriteLine(xn.PreviousSibling.InnerXml);
//■■■■■■■■■■■■■■■■■■■■■■■■■■
//■【注】不要取节点的Value,是Null,暂时还不知道Why ■
//■■■■■■■■■■■■■■■■■■■■■■■■■■
Console.WriteLine(xn.PreviousSibling.Value);
Console.WriteLine(xn.NextSibling.InnerText);
//【Delete oneself,xn不是根节点】
xn.ParentNode.RemoveChild(xn);
Console.ReadLine();
}
}
}
ⅡJS部分
/*
Create by AX
2007-9-10
*/
//创建XML对象
function createXMLDOM()
{
var arrSignatures=["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0",
"MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XmlDom"];
for(var i=0;i<arrSignatures.length;i++)
{
try
{
var oXmlDom=new ActiveXObject(arrSignatures[i]);
return oXmlDom;
}
catch(e)
{
}
}
}
//调用这个Function
function OpertateXML()
{
var xmlDom=createXMLDOM();
xmlDom.async=false;
xmlDom.loadXML("<?xml version=\"1.0\" encoding=\"utf-16\"?>"
+"<Root>"
+"<Node_AX Attribute=\"AttributeValue0\">AXzhz</Node_AX>"
+"<Node Attribute=\"AttributeValue1\"><AX1></Node>"
+"<Node Attribute=\"AttributeValue2\"><AX></Node>"
+"<Node Attribute=\"NewNode\">NewNodeText</Node>"
+"</Root>");
//加载文件用
//xmlDom.load("C:\AX.xml");
//添加Node
//cloneNode(true)表示同时clone其子nodes
var newNode=xmlDom.getElementsByTagName("Node_AX")[0].cloneNode(true);
//更改Attribute
newNode.setAttribute("Attribute","newNode");
//更改节点内容
newNode.text="newNodeText";
xmlDom.documentElement.appendChild(newNode);
//取Node类型的第二个节点
var selectSecondNode=xmlDom.getElementsByTagName("Node")[1];
//取得Attribute
alert(selectSecondNode.getAttribute("Attribute"));
//取得节点内容
alert(selectSecondNode.text);
//遍历节点
var selectedTag=xmlDom.getElementsByTagName("Node");
for(var i=0;i<selectedTag.length;i++)
{
selectedTag[i].text+="Loop_AX";
}
//显示带标签的内容
alert(newNode.xml);
alert(xmlDom.xml);
//取得相邻节点
alert(selectSecondNode.previousSibling.xml);
alert(selectSecondNode.nextSibling.xml);
}
Create by AX
2007-9-10
*/
//创建XML对象
function createXMLDOM()
{
var arrSignatures=["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0",
"MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XmlDom"];
for(var i=0;i<arrSignatures.length;i++)
{
try
{
var oXmlDom=new ActiveXObject(arrSignatures[i]);
return oXmlDom;
}
catch(e)
{
}
}
}
//调用这个Function
function OpertateXML()
{
var xmlDom=createXMLDOM();
xmlDom.async=false;
xmlDom.loadXML("<?xml version=\"1.0\" encoding=\"utf-16\"?>"
+"<Root>"
+"<Node_AX Attribute=\"AttributeValue0\">AXzhz</Node_AX>"
+"<Node Attribute=\"AttributeValue1\"><AX1></Node>"
+"<Node Attribute=\"AttributeValue2\"><AX></Node>"
+"<Node Attribute=\"NewNode\">NewNodeText</Node>"
+"</Root>");
//加载文件用
//xmlDom.load("C:\AX.xml");
//添加Node
//cloneNode(true)表示同时clone其子nodes
var newNode=xmlDom.getElementsByTagName("Node_AX")[0].cloneNode(true);
//更改Attribute
newNode.setAttribute("Attribute","newNode");
//更改节点内容
newNode.text="newNodeText";
xmlDom.documentElement.appendChild(newNode);
//取Node类型的第二个节点
var selectSecondNode=xmlDom.getElementsByTagName("Node")[1];
//取得Attribute
alert(selectSecondNode.getAttribute("Attribute"));
//取得节点内容
alert(selectSecondNode.text);
//遍历节点
var selectedTag=xmlDom.getElementsByTagName("Node");
for(var i=0;i<selectedTag.length;i++)
{
selectedTag[i].text+="Loop_AX";
}
//显示带标签的内容
alert(newNode.xml);
alert(xmlDom.xml);
//取得相邻节点
alert(selectSecondNode.previousSibling.xml);
alert(selectSecondNode.nextSibling.xml);
}
博客园→斧头帮少帮主
少帮主的斧头好久不饮血了!