Как я могу получить значение элемента от xpathnodeterator?

StackOverflow https://stackoverflow.com/questions/4385898

Вопрос

Когда я пытаюсь кодировать, как это,

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 (легко использовать).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top