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();
    }

     

  • 相关阅读:
    Java内存模型解惑--观深入理解Java内存模型系列文章有感(二)
    Java内存模型解惑--观深入理解Java内存模型系列文章有感(一)
    Java内存模型以及Volatile、Synchronize关键字的疑问
    关于java的volatile关键字与线程栈的内容以及单例的DCL
    SpringMVC绑定到实体数组、list、set、和map时要注意
    flutter中的动画
    mysql连接池如何确定大小?
    node下的ORM框架 Sequelize
    解决Node下MySQL客户端不支持认证协议引发的"ER_NOT_SUPPORTED_AUTH_MODE"问题
    node koa2 常用中间件和安装包
  • 原文地址:https://www.cnblogs.com/lcidy/p/8427657.html
Copyright © 2011-2022 走看看