惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Vercel News
Vercel News
F
Fortinet All Blogs
月光博客
月光博客
G
Google Developers Blog
博客园 - Franky
GbyAI
GbyAI
The Cloudflare Blog
I
InfoQ
雷峰网
雷峰网
WordPress大学
WordPress大学
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
T
The Blog of Author Tim Ferriss
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
小众软件
小众软件
腾讯CDC
B
Blog
量子位
V
V2EX
S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News

博客园 - 斧头帮少帮主

猜一猜,会输出什么? ASP.NET错误处理的两种方案_AX Log4Net最简单的使用配置_AX 一个修改后的JS日历(Calendar)控件_AX - 斧头帮少帮主 - 博客园 页面回传(PostBack)后恢复滚动条的位置_AX - 斧头帮少帮主 - 博客园 Hidden Field 的值不能回传(PostBack)到后台_AX Delegate(代理)异常:该委托必须有一个目标 WCF学习随笔6--Version变更--我们在前进_AX WCF学习随笔5--我知道:Known--可憐的孩子_AX WCF学习随笔4--契约|序列化详解--祭斧_AX WCF学习随笔3--第一个Sample--祭斧_AX - 斧头帮少帮主 - 博客园 WCF学习随笔2--Contract--磨斧_AX WCF学习随笔1--扫盲--磨斧_AX 把项目运行情况写入系统日志(Log)的三种方法【续】_AX 把项目运行情况写入系统日志(Log)的三种方法_AX 为用户控件User Control添加事件_AX DataTable常用操作总结_AX - 斧头帮少帮主 - 博客园 .NET(C#)代码性能优化_AX - 斧头帮少帮主 - 博客园 Panel的不足及弥补_AX - 斧头帮少帮主 - 博客园
XML常用操作总结_AX
斧头帮少帮主 · 2007-09-10 · via 博客园 - 斧头帮少帮主

Ⅰ*.cs部分

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">&lt;AX1&gt;</Node>
            
//  <Node Attribute="AttributeValue2">&lt;AX&gt;</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);
            
//&lt;AX1&gt;
            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\">&lt;AX1&gt;</Node>"
                    
+"<Node Attribute=\"AttributeValue2\">&lt;AX&gt;</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); 
}

博客园斧头帮少帮主

少帮主的斧头好久不饮血了!

posted on 2007-09-10 20:17  斧头帮少帮主  阅读(1268)  评论()    收藏  举报