Это гораздо проще в использовании Linq к XML, но с помощью XmlDocument
вы можете найти узлы, используя XPath запросов.
XmlDocument doc = new XmlDocument();
doc.Load(xmlData);
XmlNode root = doc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("//account/accountno[@isRequired='true']");
Вы можете перебирать на nodes
для доступа к данным. Вы просто напишете выражение simlar XPath для запроса типа учетной записи. Лично я не эксперт XPath, поэтому возьмите вышеуказанное выражение с солью. Вот в MSDN по размещению элементов с помощью XPath: https://msdn.microsoft.com/en-us/library/d271ytdx(v=vs.110).aspx
Это гораздо проще в XDocument
(он же Linq к XML)
XDocument doc = XDocument.Load(xmlData);
var nodes = doc.Descendants("accountno").Where(n => n.Attribute("isRequired").Value.equals("true"));
ПРИМЕЧАНИЕ: выше лямбда может привести кNullReferenceException
если вы Арен «т осторожны
Вы можете перебирать на nodes
в этом, а также, однако на этот раз он возвращает объект IEnumerable<XElement>
вместо XmlNodeList
. Вот хорошая отправная точка для Linq к XML: https://msdn.microsoft.com/en-us/library/bb387098.aspx
EDIT:
За комментариями ниже Ниже приведен пример запроса LINQ, который возвращает все, где «isRequired.equals (» истинные)»истинно независимо от имени элемента тега:
doc.Descendants().Where(n => n.Attribute("isRequired") != null && n.Attribute("isRequired").Value.Equals("true"));
Пожалуйста, после того, что вы уже пробовали уже у вас есть требование использовать '' XmlDocument' XDocument', что позволяет Linq к XML намного проще в использовании.?. – JNYRanger
Я не использую Linq для XML. Я использую XMLdocument, который будет загружать данные xml, как показано ниже. XmlDocument ExampleDataX ml = новый XmlDocument(); ExampleDataXml.LoadXml (XmlData); Мне нужно узнать узлы XML, у которых есть isRequired true в этом xmldocument. –
Я знаю об этом. Однако вы не разместили какой-либо код или не объяснили, почему * вы используете 'XmlDocument' вместо' XDocument' для этого простого использования. Если вы собираетесь добавить код, отредактируйте свой вопрос и покажите нам, что вы уже сделали. – JNYRanger