Как я читаю и анализирую XML-файл в C#?

В зависимости от того, на какой платформе вы компилируете, тип utility::string_t будет typedef'd либо std::wstring (в Windows), либо std::string (в Linux / OSX).

To получить классический utf-8 std::string, независимо от платформы, взглянуть на utility::conversions::to_utf8string.

справочная документация

334
задан GEOCHET 19 March 2009 в 23:03
поделиться

6 ответов

XmlDocument для чтения XML из строки или из файла.

XmlDocument doc = new XmlDocument();
doc.Load("c:\\temp.xml");

или

doc.LoadXml("<xml>something</xml>");

тогда находят, что узел ниже его т.е. как это

XmlNode node = doc.DocumentElement.SelectSingleNode("/book/title");

или

foreach(XmlNode node in doc.DocumentElement.ChildNodes){
   string text = node.InnerText; //or loop through its children as well
}

тогда прочитал текст в том узле как это

string text = node.InnerText;

или считал атрибут

string attr = node.Attributes["theattributename"]?.InnerText

Всегда проверка на пустой указатель на Атрибутах ["что-то"], так как это будет пустым, если атрибут не будет существовать.

447
ответ дан Wolf5 4 November 2019 в 10:20
поделиться

Вы можете также:

XmlDocument Примеры находится на страницах MSDN, обеспечил

7
ответ дан Grzenio 4 November 2019 в 10:20
поделиться

Существует много пути, некоторых:

  • XmlSerializer. используют класс с целевой схемой, которую Вы хотите прочитать - используют XmlSerializer для получения данных в Xml, загруженном в экземпляр класса.
  • Linq 2 xml
  • XmlTextReader.
  • (доступ только для чтения) XmlDocument
  • XPathDocument
11
ответ дан Dirk Vollmar 4 November 2019 в 10:20
поделиться

Linq к XML.

кроме того, VB.NET имеет намного лучше xml анализирующий поддержку с помощью компилятора, чем C#. Если у Вас есть опция и требование, проверяют его.

7
ответ дан 4 November 2019 в 10:20
поделиться

Выезд класс XmlTextReader , например.

2
ответ дан Quintin Balsdon 4 November 2019 в 10:20
поделиться

LINQ к примеру XML:

// Loading from a file, you can also load from a stream
var xml = XDocument.Load(@"C:\contacts.xml");


// Query the data and write out a subset of contacts
var query = from c in xml.Root.Descendants("contact")
            where (int)c.Attribute("id") < 4
            select c.Element("firstName").Value + " " +
                   c.Element("lastName").Value;


foreach (string name in query)
{
    Console.WriteLine("Contact's Full Name: {0}", name);
}

Ссылка: LINQ к XML в MSDN

206
ответ дан LW001 23 November 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: