xpath выбрать внутренний текст элемента, который повторяется в произвольной области XML-файла - PullRequest
0 голосов
/ 16 марта 2011

У меня есть xml-файл, подобный этому НИКОГДА НЕ УЗНАЙТЕ буквенных ящиков . Я заинтересован в элементах, которые находятся внутри и ... и если есть элемент в дочернем элементе, я не хочу считать в этом.

<document>
<tests>
<group>
  <number>
    <random>
      ....
      ....
      <pins>
      <pin>
        <number>1</number>
      </pin>
        <pin>
          <number>2</number>
          <result>
            <number>NOT INTERESTED</number>
          </result>
        </pin>
    </pins>
    </random>
  </number>
</group>


Я использую следующие методы, чтобы получить интересующие контакты (в данном случае 1 и 2)

    public int GetNumberOfAllPins()
    {
        string xpath = "count(/Document//Pins/Pin/Number)";
        int num = Convert.ToInt32(nav.Evaluate(xpath));
        return num;        
    }

    public string[] GetNameOfAllPins()
    {
        string[] temp = new string[GetNumberOfAllPins()];
        XPathNodeIterator it = nav.Select("/Document//Pins/Pin/Number");

        int i = 0;
        while (it.MoveNext())
        {
            temp[i] = it.Current.Value;
            i++;
        }
        return temp;
    }

Но эти коды дают мне странные результаты, иногда меньше или больше элементов, которые меня интересуют. Не могли бы вы дать несколько советов?

Спасибо.

1 Ответ

0 голосов
/ 16 марта 2011

Извините за беспокойство, но я нашел проблему. в моем XML-файле было несколько смежных элементов. этот код работает хорошо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...