Чтение XML-файла с помощью .NET - PullRequest
1 голос
/ 02 апреля 2010

Я новичок в xml и не могу найти способ получить контент между тегами. Мой 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>

Ответы [ 2 ]

5 голосов
/ 02 апреля 2010

LINQ to XML - отличное место для начала. Рассмотрим следующий код для разбора вашего 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}\t{1}\t{2}", file.Name, file.Word, file.Number );
}

Конечно, вы можете загрузить XML непосредственно из файла, используя XDocument.Load вместо Parse для чтения XML-строки. XDocument находится в пространстве имен System.Xml.Linq. Честно говоря, я бы начал с этого, но есть другие варианты работы с XML в пространстве имен System.Xml (XmlReader.Create и т. Д.).

1 голос
/ 02 апреля 2010

Вам необходимо использовать язык XML Query.Я бы порекомендовал LINQ to XML , если вы используете .Net 3.5 или XPath, если вы используете что-то ранее.Преимущество XPath в том, что он является отраслевым стандартом, но, на мой взгляд, LINQ to XML является гораздо более «чистым» API.

Как запрашивать XML с помощью выражения XPath с использованием Visual C # - Учебник по использованию XPath

Видео-учебник по LINQ to XML

Примеры MSDN XPath - Из справочника XPath

Расположение путей - включает, например, текст () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...