Получение указанных значений узла из XML-документа
185965 просмотра
1 ответ
У меня проблема с просмотром XML-документа (с помощью C #) и получением всех необходимых значений. Я успешно прошёл все указанные XmlNodeLists в XML-документе, успешно получил все значения XmlNode внутри, но мне нужно получить некоторые значения вне этого XmlNodeList.
Например:
<?xml version="1.0" encoding="UTF-8" ?>
<Element xsi:schemaLocation="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd xsd2009027_kor21.xsd" Kod="370" xmlns="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
/2001/XMLSchema-instance">
<ANode>
<BNode>
<CNode>
<Example>
<Name>John</Name>
<NO>001</NO>
</Example>
</CNode>
</BNode>
<ID>1234</ID>
<Date>2011-10-01</Date>
</ANode>
<ANode>
<BNode>
<CNode>
<Example>
<Name>Mike</Name>
<NO>002</NO>
</Example>
</CNode>
</BNode>
<ID>5678</ID>
<Date>2011-03-31</Date>
</ANode>
</Element>
Это код, который получает значения для узлов Name и NO в каждом найденном ANode в документе XML:
XmlDocument xml = new XmlDocument();
xml.LoadXml(myXmlString); //myXmlString is the xml file in string //copying xml to string: string myXmlString = xmldoc.OuterXml.ToString();
XmlNodeList xnList = xml.SelectNodes("/Element[@*]/ANode/BNode/CNode");
foreach (XmlNode xn in xnList)
{
XmlNode example = xn.SelectSingleNode("Example");
if (example != null)
{
string na = example["Name"].InnerText;
string no = example["NO"].InnerText;
}
}
Теперь у меня проблема с получением значений для идентификатора и даты.
Автор: Ljupco Sofijanov Источник Размещён: 13.11.2019 11:38Ответы (1)
30 плюса
Решение
Точно так же, как вы делаете для получения чего-то от CNode
вас также нужно сделать дляANode
XmlNodeList xnList = xml.SelectNodes("/Element[@*]");
foreach (XmlNode xn in xnList)
{
XmlNode anode = xn.SelectSingleNode("ANode");
if (anode!= null)
{
string id = anode["ID"].InnerText;
string date = anode["Date"].InnerText;
XmlNodeList CNodes = xn.SelectNodes("ANode/BNode/CNode");
foreach (XmlNode node in CNodes)
{
XmlNode example = node.SelectSingleNode("Example");
if (example != null)
{
string na = example["Name"].InnerText;
string no = example["NO"].InnerText;
}
}
}
}
Автор: msarchet
Размещён: 22.06.2011 03:15
Вопросы из категории :
- c# Преобразовать десятичную в двойную?
- c# Как рассчитать чей-то возраст в C #?
- c# Как вы сортируете словарь по значению?
- c# В чем разница между int и Integer в Java и C #?
- c# Как создать новый экземпляр объекта из Типа
- c# Datatable против Dataset
- xml Обработка XML в Python
- xml Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- xml Removing nodes from an XmlDocument
- xml Как анализировать XML-файлы?
- xml XmlSerializer - произошла ошибка, отражающая тип
- xml Как заставить Axis 1.4 не генерировать несколько префиксов для одного и того же пространства имен XML?
- xmldocument Как бы вы сравнили два XML-документа?
- xmldocument Как добавить пространство имен xml в документ xmldocument
- xmldocument Получение указанных значений узла из XML-документа
- xmldocument Windows Phone - XmlDocument не может быть найден
- xmldocument Имя не может начинаться с символа «1», шестнадцатеричное значение 0x31. Линия 2, позиция 2