Как я могу получить значение элемента от xpathnodeterator?
-
10-10-2019 - |
Вопрос
Когда я пытаюсь кодировать, как это,
XPathNodeIterator it;
string selectStr = "Equipment/Group/item";
it = nav.Select(selectStr);
while (it.MoveNext())
{
String strVal = "";
if (it.Current.HasChildren)
{
strVal = it.Current.Value.ToString(); // get wrong value here. I want to get 'COM' and 'MD'
}
}
Мой XML -файл как этот
<Equipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<License licenseId="" licensePath=""/>
<Group>
<item>
<key>COM</key>
<value>
<format>10</format>
<value>0</value>
</value>
</item>
<item>
<key>MD</key>
<value>
<format>20</format>
<value>test</value>
</value>
</item>
.....
Я нашел, когда использую while
Метод для цикла всего файла XML очень удобен.
Но я не знаю, как установить отношение к получению значения элемента, когда я определил xpathnodeterator, как указано выше?
На самом деле, мне нужно прочитать весь файл XML с помощью Xpathnodeterator.
Решение
Вам придется запустить новый итератор для каждого поднода, выбирающего только подтоги. XPathNodeIterator
а также Xpath в целом больше ориентирован на извлечение Данные из XML. Если вы хотите прочитать весь файл XML, вам следует рассмотреть XmlReader (очень быстро, только вперед) или Xdocument (легко использовать).
Не связан с StackOverflow