asp.net C#对xml文档创建 修改 删除 查找

1、创建 XML

导入命名空间:

 代码如下 复制代码

using System.Xml;

//创建 XML 对象

XmlDocument  xmlDocument = new XmlDocument();

// 声明 XML

 XmlDeclaration xmlDeclare =xmlDocument.CreateXmlDeclaration("1.0","utf-8",null);

//创建根节点

XmlElement elementRoot =xmlDocument.CreateElement("Nodes");

xmlDocument.AppendChild(elementRoot);  

//创建节点 Day

XmlElement elementDay = xmlDocument.CreateElement("Day");

       //给节点Day设置属性,并赋值

elementDay.SetAttribute("date","今天"); 

elementRoot.AppendChild(elementDay);

//创建 Day 的子节点Part

XmlElement elementPart = xmlDocument.CreateElement("Part");

elementPart.InnerText = " aaa";

 elementDay.AppendChild(elementPart);

//保存到 XML 文件件下

xmlDocument.Save("./myXml.xml");

 

xml 生成数据:

<Notes>

     <Day date="今天">

              <part>aaa</part>

     </Day>

</Notes>

2.读写XML文件

 

 代码如下 复制代码

<?xml version="1.0" encoding="utf-8" ?>
<PhoneBook>
 <phone id="001">
  <Name>加菲尔德</Name>
  <Number>5555555</Number>
  <City>纽约</City>
  <DateOfBirth>26/10/1978</DateOfBirth>
 </phone>
 <phone id="002">
  <Name>迈克</Name>
  <Number>6666666</Number>
  <City>纽约</City>
  <DateOfBirth>12/02/1978</DateOfBirth>
 </phone>
</PhoneBook>

*********************************************************************

·使用Document读取及写入XML方法

  private void xmlfun()
  {
   XmlDocument doc = new XmlDocument();
   doc.Load(Server.MapPath("phone.xml"));

   XmlElement node = doc.CreateElement("phone");
   XmlAttribute atr = doc.CreateAttribute("id");
   atr.InnerText = "003";
   node.Attributes.Append(atr);

   XmlNode xnode = (XmlNode)doc.CreateElement("Name");
   xnode.InnerText="testName";
   node.AppendChild(xnode);

   xnode = (XmlNode)doc.CreateElement("Number");
   xnode.InnerText="119";
   node.AppendChild(xnode);
   xnode = (XmlNode)doc.CreateElement("City");
   xnode.InnerText="cs";
   node.AppendChild(xnode);
   xnode = (XmlNode)doc.CreateElement("DateOfBirth");
   xnode.InnerText="12/02/1978";
   node.AppendChild(xnode);
   doc.DocumentElement.InsertAfter(node,doc.DocumentElement.LastChild);

   doc.Save(Server.MapPath("phone1.xml"));   //必须要存为不同的文件

  }

 

·使用XmlTextWriter写入XML方法

 代码如下 复制代码

  private void xmlwriter()
  {
   XmlTextWriter writer= new XmlTextWriter(Server.MapPath("phone4.xml"),null);
   writer.Formatting = Formatting.Indented;  //缩进格式
   writer.Indentation =4;

   writer.WriteStartDocument();

   writer.WriteStartElement("Person");

   writer.WriteStartAttribute("ID",null);
   writer.WriteString("004");
   writer.WriteEndAttribute();

   writer.WriteStartElement("Name");
   writer.WriteString("testWriterName");
   writer.WriteEndElement();

   writer.WriteStartElement("Number");
   writer.WriteString("88888");
   writer.WriteEndElement();

   writer.WriteStartElement("City");
   writer.WriteString("testWriterCity");
   writer.WriteEndElement();

   writer.Flush();
   writer.Close();

  }

 

·使用XmlTextReader读取XML方法

 代码如下 复制代码

  private void xmlread()
  {
      XmlTextReader reader = new XmlTextReader(Server.MapPath("phone.xml"));
      while(reader.Read())
      {
          if(reader.LocalName.Equals("Name") || reader.LocalName.Equals("Number"))
      {
      this.Label1.Text += reader.ReadString()+"t";
  }

 

·作用SqlCommand.ExecuteXmlReader()取得XML

 代码如下 复制代码

SqlConnecting conn = new SqlConnection(CONNSTR);
SqlCommand cmd = new SqlCommand("select fname from employee for xml auto",conn);
conn.open();
XmlReader reader = cmd.ExecuteXmlReader();
......
################ 所取xml数据格式 #################

<employee fname="aria"/>
<employee fname="carlors"/>......

3.查找xml

<Placemark>
      <description>Front line</description>
      <Name>sole</Name>
      <styleUrl>#roadStyle</styleUrl>
      <LineString>
        <coordinates>
               114.0456,22.324
            </coordinates>
      </LineString>
    </Placemark>
如何根据Name的值找到这个Placemark
让后插入数据到
coordinates节点中呢。

 代码如下 复制代码
XmlElement Chid_Elent = Doc.DocumentElement; //得到XML的根节点
 if (Chid_Elent.ChildNodes.Count > 0)//如果根节点下有子节点
  {
       foreach (XmlElement Elent in Chid_Elent.ChildNodes)//循环获取节点值
       {
             value=Elent.InnerText;//得到值
             Elent.InnerText=vaue; //或者赋值  value为外部变量
       }
}

最后save(路径)

4、显示所有数据

 

 代码如下 复制代码

 

XmlNode xn=xmlDoc.SelectSingleNode("bookstore");
XmlNodeList xnl=xn.ChildNodes;

foreach(XmlNode xnf in xnl)
{
XmlElement xe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//显示属性值
Console.WriteLine(xe.GetAttribute("ISBN"));

XmlNodeList xnf1=xe.ChildNodes;
foreach(XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText);//显示子节点点文本
}
}

最后附一个C#操作Xml通用工具类

 代码如下 复制代码

using System;
using System.Xml;

namespace WLerp.Common.Util
{
    /// <summary>
    /// Xml 操作工具类
    /// </summary>
    public sealed class XmlUtil
    {
        private XmlUtil() { }

        /// <summary>
        /// 创建节点
        /// </summary>
        /// <param name="node"></param>
        /// <param name="newElementName"></param>
        /// <returns></returns>
        public static XmlNode AppendElement(XmlNode node, string newElementName)
        {
            return AppendElement(node, newElementName, null);
        }

        /// <summary>
        /// 创建节点
        /// </summary>
        /// <param name="node"></param>
        /// <param name="newElementName"></param>
        /// <param name="innerValue"></param>
        /// <returns></returns>
        public static XmlNode AppendElement(XmlNode node, string newElementName, string innerValue)
        {
            XmlNode oNode;
            if (node is XmlDocument)
            {
                oNode = node.AppendChild(((XmlDocument)node).CreateElement(newElementName));
            }
            else
            {
                oNode = node.AppendChild(node.OwnerDocument.CreateElement(newElementName));
            }

            if (innerValue != null)
            {
                oNode.AppendChild(node.OwnerDocument.CreateTextNode(innerValue));
            }
            return oNode;
        }

        /// <summary>
        /// 创建属性
        /// </summary>
        /// <param name="xmlDocument"></param>
        /// <param name="name"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static XmlAttribute CreateAttribute(XmlDocument xmlDocument, string name, string value)
        {
            XmlAttribute oAtt = xmlDocument.CreateAttribute(name);
            oAtt.Value = value;
            return oAtt;
        }

        /// <summary>
        /// 设置属性的值
        /// </summary>
        /// <param name="node"></param>
        /// <param name="attributeName"></param>
        /// <param name="attributeValue"></param>
        public static void SetAttribute(XmlNode node, string attributeName, string attributeValue)
        {
            if (node.Attributes[attributeName] != null)
            {
                node.Attributes[attributeName].Value = attributeValue;
            }
            else
            {
                node.Attributes.Append(CreateAttribute(node.OwnerDocument, attributeName, attributeValue));
            }
        }

        /// <summary>
        /// 获取属性的值
        /// </summary>
        /// <param name="node"></param>
        /// <param name="attributeName"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static string GetAttribute(XmlNode node, string attributeName, string defaultValue)
        {
            XmlAttribute att = node.Attributes[attributeName];
            if (att != null)
            {
                return att.Value;
            }
            else
            {
                return defaultValue;
            }
        }

        /// <summary>
        /// 获取节点的值
        /// </summary>
        /// <param name="parentNode"></param>
        /// <param name="nodeXPath"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static string GetNodeValue(XmlNode parentNode, string nodeXPath, string defaultValue)
        {
            XmlNode node = parentNode.SelectSingleNode(nodeXPath);
            if (node.FirstChild != null)
            {
                return node.FirstChild.Value;
            }
            else if (node != null)
            {
                return node.Value;
            }
            else
            {
                return defaultValue;
            }
        }
    }
}

时间: 2024-09-20 00:14:36

asp.net C#对xml文档创建 修改 删除 查找的相关文章

asp.net-SiteMapPath如何绑定xml文档?

问题描述 SiteMapPath如何绑定xml文档? SiteMapPath如何绑定xml文档?是不是智能绑定站点地图?刚学到这儿书上写的绑定站点地图但是我不想现在就绑定到站点地图. 解决方案 使用sitemappath你需要绑定xml文件..如果你不会自动生成的话那你就手动编写咯...xml里面的节点你可以设置下,sitemappath在绑定xml文件的时候你在设置下就OK咯...很简单的...

JDOM操作XML文档高级篇XML验证,创建带名字空间的xml, xml文档的修改

下面我通过几个例子来实现JDOM来操作XML文档: 1. xml文档的验证 DTD   我们经常使用XML来验证文档的合法性.  我们需要在xml的开头引入  <!DOCTYPE rootName SYSTEM "xxx.dtd">   这里的PUBLIC 引入的是私有DTD也就是我们自己定义的 .我们平时使用这种即可 . 另一种是   <!DOCTYPE rootName PUBLIC  ".........">这个是ISO标准的DTD 

asp.net C#操作xml文档实现代码

 代码如下 复制代码 XmlDocument xmldoc = new XmlDocument();             //在XML的文档的最头部加入XML的声明段落             XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");             xmldoc.AppendChild(xmlnode);             //创建根节点   

asp.net XmlTextReader 解析xml文档实例

XmlTextReader 用于快速的只进的读取 XML. XmlTextReader 的名称空间是: System.Xml 应用示例  代码如下 复制代码 XmlTextReader reader = new XmlTextReader(xmlFragment, XmlNodeType.Element, null); while (reader.Read()) {     if (reader.NodeType == XmlNodeType.Element)     {         if

asp.net 读取xml文档及设置App_Data目录细节

asp教程.net 读取xml文档及设置app_data目录细节 1.不是所有的资源文件都能放入app_data文件夹       不能将图片等资源放在app_data文件夹中:在设置treeview等imageurl中,选中了路径,页面也显示了,但运行时却不显示,修改良久才发现.      数据库教程文件.xml文件等其他的可以放在app_data中:  dataset 绑定到 list 控件 首先,导入 "system.data" 命名空间.我们需要该命名空间与 dataset 对

完成asp语言对XML文档中指定节点文本的增加、删除、修改、查看

<% '---------------------------------------------------------------- '程序简介: 完成asp教程语言对xml文档中指定节点文本的增加.删除.修改.查看 '入口参数: 无 '出口参数: 无 '------------------------------------------------ '函数名字:connectxml() '入口参数: filename 需要连接或打开的xml文件名 '出口参数: 无 '返回值 :connec

Flash处理外部XML文档数据

xml|数据 准备: 首先你得有台电脑.其次是要装上Windows系统和Flash8. XML基础: 既然是处理XML文档.就要先来了解下XML文档.下面是我所了解的,有些是在Flash中用不到的.XML扩展标记语言(Extensible Markup Language)是SGML(Structured Generalized Markup Language)的子集.XML是由World Wide Web Consortium(W3C)的XML工作组定义的. 下面开始了解XML的结构: XML是

利用Asp.net Ajax异步获取xml文档内容

ajax|asp.net|xml|异步 Ajax原意本是让人利用异步获取XML内容,以实现无刷新的网页效果asp.net ajax已将底层内容封装实现起来远比自写xmlhttp来的方便,至少浏览器兼容方面要强得很多下面以一个www.asp.net的示例说明一下利用microsoft ajax library来简单异步获取xml文档的方法 // 返回XML的Web 请求function OnSucceededXml(executor, eventArgs) ...{    if (executor

ASP.NET技巧:根据xsd生成xml文档

asp.net|xml|技巧|生成xml 现在有很多的xml工具软件都能根据xsd文件书写出xml文档,.net 没有实现此方法,如是我写了几个浏览.校验.和创建xml的方法全部代码如下: using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;us