Вопрос

Я получаю XML-файл из веб-сервиса.Теперь я хочу извлечь один из этих элементов из файла.

Я думаю, мне следует использовать XPath - есть какая-нибудь хорошая ссылка для начала?

Это было полезно?

Решение

Не специфичен для VB, но попробуйте это: http://www.w3schools.com/xsl/xpath_intro.asp

Другие советы

Я только что восстановил свои навыки XPath - это Краткий справочный лист по Xslt и XPath это довольно полезная ссылка - она не вдается в подробности, но в ней перечислено, что доступно и по чему вы, возможно, захотите найти дополнительную информацию.

Руководство по w3schools, на которое была дана ссылка ранее, не такое уж и замечательное - требуется много времени, чтобы не охватить большого объема информации, - но его все равно стоит прочитать.

Одним из способов было бы извлечь необходимую информацию только из файла xslt в новый xml и использовать этот новый xml в качестве основы данных для дальнейшей обработки

Если мне нужно выполнить какой-нибудь XPath, я просто изменяю один из этих примеров.

  • дочерний элемент::node() выбирает всех дочерних элементов контекстного узла, независимо от типа их узла
  • атрибут::имя выбирает атрибут name контекстного узла
  • атрибут::* выбирает все атрибуты контекстного узла
  • потомок::параграф выбирает элемент para, являющийся потомком контекстного узла
  • предок::div выбирает все див предки контекстного узла
  • предок-или-я::div выбирает див предки контекстного узла и, если контекстный узел является элементом div, также и контекстный узел
  • потомок-или-я::параграф выбирает para элемент, являющийся потомком контекстного узла, и, если контекстный узел является para элемент, а также контекстный узел
  • самость::пара выбирает контекстный узел, если это para элемент, и в противном случае ничего не выбирает
  • потомок::глава/потомок::пункт выбирает para элемент потомки элемента chapter дочерние элементы контекстного узла
  • ребенок::*/ребенок::пункт выбирает все para внуки контекстного узла
  • / выбирает корневой каталог документа (который всегда является родительским для элемента document).
  • /потомок::параграф выбирает все para элементы в том же документе, что и контекстный узел
  • /потомок::olist/дочерний элемент::item выбирает все элементы элемента, которые имеют олист родительский и которые находятся в том же документе, что и контекстный узел
  • дочерний элемент::пункт[позиция()=1] выбирает первый para дочерний элемент контекстного узла
  • дочерний элемент::пункт[позиция()=последняя()] выбирает последний para дочерний элемент контекстного узла
  • дочерний элемент::пункт[позиция()=последняя()-1] выбирает предпоследний para дочерний элемент контекстного узла
  • ребенок::пункт[позиция()>1] выбирает все para дочерние элементы контекстного узла, отличные от первого дочернего элемента para контекстного узла
  • следующий брат::глава[позиция()=1] выбирает следующий глава дочерний элемент контекстного узла
  • предыдущий-родной::глава[позиция()=1] выбирает предыдущий глава дочерний элемент контекстного узла
  • /потомок::рисунок[позиция()=42] выбирает сорок второй элемент рисунка в документе
  • /дочернийэлемент::doc/дочернийэлемент::глава[позиция()=5]/дочернийэлемент::раздел[позиция()=2] выбирает второй раздел пятого глава из числа док элемент документа
  • дочерний элемент::para[атрибут::type="предупреждение"] выбирает все para дочерние элементы контекстного узла, имеющие атрибут type со значением предупреждение
  • дочерний элемент::para[атрибут::type='предупреждение'][позиция()=5] выбирает пятый para дочерний элемент контекстного узла, который имеет атрибут type со значением warning
  • дочерний элемент::пункт[позиция()=5][атрибут::тип="предупреждение"] выбирает пятый para дочерний элемент контекстного узла, если у этого дочернего элемента есть атрибут типа со значением предупреждение
  • дочерний элемент::глава[дочернийэлемент::title='Введение'] выбирает дочерние разделы контекстного узла, которые имеют один или несколько дочерних заголовков со строковым значением, равным Introduction
  • дочерний элемент::глава[дочернийэлемент::название] выбирает глава дочерние элементы контекстного узла, имеющие один или несколько дочерних элементов заголовка
  • ребенок::*[сам:: глава или сам:: приложение] выбирает глава и приложение дочерние элементы контекстного узла
  • дочерний элемент::*[self:: глава или self:: приложение][позиция()=последняя()] выбирает последний глава или приложение дочерний элемент контекстного узла

С подробной документацией можно ознакомиться здесь здесь.Также эти примеры взяты оттуда.

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