zoukankan      html  css  js  c++  java
  • C# XML创建解析、XML格式化

    导入命名空间:

    VS需要在项目中添加引用system.XML; 代码中添加 using System.XML和using System.IO;

     

    XML范例:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <MSG>
    
      <HEADINFO>
    
        <TYPE>ValidFlight</TYPE>
    
      </HEADINFO>
    
      <ValidFlight>
    
        <Flight>
    
          <Runway>3</Runway>
    
          <Stand>27</Stand>
    
          <FlightID>436179</FlightID>
    
        </Flight>
    
        <Flight>
    
          <Runway>3</Runway>
    
          <FlightID>436180</FlightID>
    
        </Flight>
    
    </ValidFlight>
    
    </MSG>

    XML解析:

    方法一:

    XmlNode rootNode = XDoc.SelectSingleNode("/MSG/ValidFlight");
    
    foreach (XmlNode Xnode in rootNode.ChildNodes)
    {
            int FlightId = Convert.ToInt32(Xnode.SelectSingleNode("FlightID").InnerText);
    
            string RunWay = Xnode.SelectSingleNode("Runway") == null ? null : Xnode.SelectSingleNode("Runway").InnerText;
    
           string Stand = Xnode.SelectSingleNode("Stand") == null ? null : Xnode.SelectSingleNode("Stand").InnerText;
    }

    方法二:

    XmlNode nodelist= XDoc.SelectSingleNode("MSG/ValidFlight");
    
    foreach (XmlNode Xnode in nodelist)
    {
         int FlightId = Convert.ToInt32(Xnode["FlightID"].InnerText);
    
        string RunWay = Xnode["Runway"]== null ? null : Xnode.Xnode["Runway"].InnerText;
    
        string Stand = Xnode["Stand"] == null ? null :Xnode["Stand"].InnerText;
    }

    XML创建

    XmlDocument xmlDoc = new XmlDocument();
    
    //创建根节点
    
    xmlDoc.LoadXml("<?xml version = '1.0' encoding='UTF-8'?><MSG></MSG>");
    
    XmlElement root = xmlDoc.DocumentElement; 
    
    //创建一级节点
    
    XmlElement flight = xmlDoc.CreateElement("flight");
    
    //创建第二级节点
    
    XmlElement flightPlan = xmlDoc.CreateElement("flightPlan");
    
    XmlElement fpid = xmlDoc.CreateElement("fpid");
    
    fpid.InnerText = 32;
    
    flightPlan.AppendChild(fpid);
    
    //创建第二个节点
    
    XmlElement fpflag = xmlDoc.CreateElement("fpflag");
    fpflag.InnerText = 1;
    
    fpflag.SetAttribute("name","fpflag");
    
    flightPlan.AppendChild(fpflag);
    
    flight.AppendChild(flightPlan);
    
    root.AppendChild(flight);

    XML格式化

    private static string formatXml(XmlDocument xml)
    {
    XmlDocument xd = xml as XmlDocument;
    StringBuilder sb = new StringBuilder();
    StringWriter sw = new StringWriter(sb);
    XmlTextWriter xtw = null;
    try
    {
    xtw = new XmlTextWriter(sw);
    xtw.Formatting = Formatting.Indented;
    xtw.Indentation = 1;
    xtw.IndentChar = '	';
    xd.WriteTo(xtw);
    }
    finally
    {
    if (xtw == null)
    xtw.Close();
    }
    return sb.ToString();
    }

     

  • 相关阅读:
    32/64位平台printf uint64的方法
    [Linux 安装]centos安装vmware tools
    【Linux】fg bg ctrl + z jobs & 等命令
    让我们慢慢地彼此遗忘
    ctrl+c,ctrl+d,ctrl+z在linux中意义
    Windows 7 右键菜单 添加命令
    修改vs2010所有工程的include目录和lib目录
    Vmware虚拟机的linux与主机共享
    防止atoi函数内存越界
    JavaScriptSerializer使用条件
  • 原文地址:https://www.cnblogs.com/lcidy/p/8427657.html
Copyright © 2011-2022 走看看