Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
485 views
in Technique[技术] by (71.8m points)

c# - Reading an XML File with .NET

I am new to xml and unable to find a way to get content in between tags. My XML file is

<?xml version="1.0" encoding="utf-8"?>
<block1>
  <file name="c:w0.xml">
    <word>Text</word>
    <number>67</number>
   </file>
  <file name="c:w1.xml">
    <word>Text</word>
    <number>67</number>
  </file>
  <file name="c:w2.xml">
    <word>Text</word>
    <number>67</number>
  </file>
</block1>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

LINQ to XML is a great place to start. Consider the following code to parse your XML.

string xml = @"<?xml version=""1.0"" encoding=""utf-8""?> 
<block1> 
  <file name=""c:w0.xml""> 
    <word>Text</word> 
    <number>67</number> 
   </file> 
  <file name=""c:w1.xml""> 
    <word>Text</word> 
    <number>67</number> 
  </file> 
  <file name=""c:w2.xml""> 
    <word>Text</word> 
    <number>67</number> 
  </file> 
</block1>";

XDocument document = XDocument.Parse(xml);

var block = from file in document.Descendants("file")
            select new
            {
                Name = file.Attribute ("name").Value,
                Word = file.Element("word").Value,
                Number = (int)file.Element("number")
            };

foreach (var file in block)
{
    Console.WriteLine("{0}{1}{2}", file.Name, file.Word, file.Number );
}

You can, of course, load the XML directly from a file using XDocument.Load instead of using Parse to read an XML string. XDocument is in the System.Xml.Linq namespace. Frankly, I would start there, but there are other options to work with XML in the System.Xml namespace (XmlReader.Create, etc.).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...