簡體   English   中英

如何在c#中讀取XML文件?

[英]How to read XML file in c#?

我有以下XML文件,我想知道閱讀此XML文件的最佳方法

<MyFile> 
  <Companies> 
    <Company>123</Company> 
    <Company>456</Company>
    <Company>789</Company> 
  </Companies> 
</MyFile>

作為輸出我需要收集像“123,456,789”這樣的值,或者它可能是字符串[]的數組

我們可以將Linq用於xml嗎? 怎么樣?

var xdoc = XDocument.Load(PATH_TO_FILE);
var companies = xdoc.Descendants("Company").Select(c => (string)c).ToArray();

這會給你一個string[]

使用LINQ to XML,包括using System.Xml.Linq;

   XDocument xmlDoc = XDocument.Load("yourfile.xml");
   var test = xmlDoc.Descendants("Companies").Elements("Company").Select(r => r.Value).ToArray();
   string result = string.Join(",", test);

輸出將是:

123,456,789

在數據集中,您可以讀取xml文件

以下是在DataSet中讀取XML文件的代碼行

DataSet dsMenu = new DataSet(); //Create Dataset Object

dsMenu.ReadXml("XMLFILENAME.XML"); // Read XML file in Dataset

DataTable dtXMLFILE// Create DatyaTable object

dtXMLFILE= dsMenu.Tables[0]; // Store XML Data in Data Table 
var xmlStr=@"<MyFile> 
  <Companies> 
    <Company>123</Company> 
    <Company>456</Company>
    <Company>789</Company> 
  </Companies> 
</MyFile>";

var xDoc = XDocument.Parse(xmlStr);
var companyIds = xDoc.Descendants("Company").Select(e => (int)e);
string pathToXmlFile = @"C:\test.xml";
XElement patternDoc = XElement.Load(pathToXmlFile);
List<string> values = new List<string>();
foreach (var element in patternDoc.Elements("Companies").Elements("Company"))
{
   values.Add(element.Value);
}

在過去,我使用過XmlReader並沒有遇到任何困難。

MSDN文檔: http//msdn.microsoft.com/en-us/library/system.xml.xmlreader( v = vs.110).aspx

它非常簡單,文檔編寫得非常好。 快速演示如何使用它:

XmlReader reader = XmlReader.Create(targetFile);

while (reader.Read())
{
    switch (reader.NodeType)
    {
        case XmlNodeType.Element:
            if (reader.Name.Equals("Company")
            {
                // Read the XML Node's attributes and add to string
            }
            break;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM