程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 創建XML文檔

C# 創建XML文檔

編輯:C#入門知識

有些時候我們需要生成一個xml文檔作為數據交換的容器。當然我們用拼接字符串的方法來進行構建xml,但是這種方法雖然簡單有效,但是如果xml文檔結構過於復雜,拼接字符串會讓人眼花缭亂。這時候就需要C#給我們提供現成的類庫,以供我們自由的創建xml文檔。

比如我們要創建如下的xml文檔


   
    ZFM1
    
        13022101
        2013238955
        4140
    
    
        13022101
        2013239627
        4140
    

選取這樣的結構,一方面是因為它來自於論壇某位壇友實際的需求,另一方面它足夠簡單卻有代表性。

下面我將以這個例子用兩種方法(XmlDocument和Linq to XML)進行講解。

1、XmlDocument

            XmlDocument document = new XmlDocument();

            XmlDeclaration declaration = document.CreateXmlDeclaration("1.0", "UTF-8", "");//xml文檔的聲明部分
            document.AppendChild(declaration);

            XmlElement root = document.CreateElement("ns0", "Z_AVS_UPLOAD_WEIGHT_Request", "http://schemas.microsoft.com/BizTalk/2003");
            document.AppendChild(root);

            XmlElement zwerks = document.CreateElement("ZWERKS");
            zwerks.InnerText = "ZFM1";
            root.AppendChild(zwerks);

            XmlElement tab1 = document.CreateElement("TAB1");
            root.AppendChild(tab1);

            XmlElement zno = document.CreateElement("ZNO");
            zno.InnerText = "13022101";
            tab1.AppendChild(zno);

            XmlElement zorder = document.CreateElement("ZORDER");
            zorder.InnerText = "2013238955";
            tab1.AppendChild(zorder);

            XmlElement zweight = document.CreateElement("ZWEIGHT");
            zweight.InnerText = "4140";
            tab1.AppendChild(zweight);

            XmlElement tab2 = document.CreateElement("TAB1");
            root.AppendChild(tab2);

            XmlElement zno2 = document.CreateElement("ZNO");
            zno2.InnerText = "13022101";
            tab2.AppendChild(zno2);

            XmlElement zorder2 = document.CreateElement("ZORDER");
            zorder2.InnerText = "2013238955";
            tab2.AppendChild(zorder2);

            XmlElement zweight2 = document.CreateElement("ZWEIGHT");
            zweight2.InnerText = "4140";
            tab2.AppendChild(zweight2);

            document.Save("test.xml");//將生成好的xml保存到test.xml文件中
2、Linq to XML
            XDocument document = new XDocument();
            document.Declaration = new XDeclaration("1.0", "UTF-8", "");

            XNamespace ns = "http://schemas.microsoft.com/BizTalk/2003";

            XElement root = new XElement(ns + "Z_AVS_UPLOAD_WEIGHT_Request",
                new XAttribute(XNamespace.Xmlns + "ns0", "http://schemas.microsoft.com/BizTalk/2003"));

            root.Add(new XElement("ZWERKS", "ZFM1"),
                new XElement("TAB1",
                    new XElement("ZNO", 13022101),
                    new XElement("ZORDER", 2013238955),
                    new XElement("ZWEIGHT", 4140)),
                new XElement("TAB1",
                    new XElement("ZNO", 13022101),
                    new XElement("ZORDER", 2013238955),
                    new XElement("ZWEIGHT", 4140))
                    );

            document.Add(root);
            document.Save("test.xml");//保存xml到文件

可以發現Linq to XML的方法比較簡潔,代碼量也足夠小。當然了XmlDocument的方法可以進一步的簡化,這裡重點展示一下Linq to XML的魅力。

呵呵,如上只當給需要的朋友提供一下思路和解決方案。關於Linq to xml的更多信息可以參考:XNamespace。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved