Как получить элемент из файла XML - PullRequest
0 голосов
/ 17 сентября 2008

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

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

Ответы [ 4 ]

2 голосов
/ 17 сентября 2008

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

Учебник по w3schools, связанный ранее, не так уж хорош - требуется много времени, чтобы не охватить большую часть темы, - но его все же стоит прочитать.

1 голос
/ 17 сентября 2008

Не зависит от VB, но попробуйте это: http://www.w3schools.com/xsl/xpath_intro.asp

0 голосов
/ 17 сентября 2008

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

  • child :: node () выбирает все дочерние элементы контекстного узла, независимо от их типа узла
  • attribute :: name выбирает атрибут name узла контекста
  • attribute :: * выбирает все атрибуты контекстного узла
  • потомок :: пункт выбирает потомков элемента-элемента узла контекста
  • ancestor :: div выбирает всех div предков контекстного узла
  • ancestor-or-self :: div выбирает div предков узла контекста и, если узел контекста является элементом div, также является узлом контекста
  • потомок-или-сам :: пункт выбирает потомков элемента para узла контекста и, если узел контекста является элементом para , а также контекстный узел
  • self :: para выбирает узел контекста, если это элемент para , а в противном случае ничего не выбирает
  • child :: chapter / Потомок :: пункт выбирает потомков элемента para дочерних элементов главы узла узла контекста
  • child :: * / child :: para выбирает всех para внуков контекстного узла
  • / выбирает корень документа (который всегда является родителем элемента документа)
  • / Потомок :: пункт выбирает все элементы пункт в том же документе, что и узел контекста
  • / Потомок :: olist / child :: item выбирает все элементы элемента, которые имеют olist родительский элемент и находятся в том же документе, что и контекстный узел
  • child :: para [position () = 1] выбирает первый para дочерний узел контекста
  • child :: para [position () = last ()] выбирает последнего para дочернего элемента контекстного узла
  • child :: para [position () = last () - 1] выбирает последний, но один para дочерний узел контекста
  • child :: para [position ()> 1] выбирает все para дочерние элементы контекстного узла, кроме первого дочернего para-элемента контекстного узла
  • follow-sibling :: chapter [position () = 1] выбирает следующую главу родственный элемент контекстного узла
  • previous-sibling :: chapter [position () = 1] выбирает предыдущий chapter родственный узел контекста
  • / потомок :: figure [position () = 42] выбирает сорок второй элемент figure в документе
  • / child :: doc / child :: chapter [position () = 5] / child :: section [position () = 2] выбирает второй раздел пятой главы элемента документа doc
  • child :: para [attribute :: type = "warning"] выбирает все para дочерние элементы узла контекста, имеющие атрибут type со значением warning
  • child :: para [attribute :: type = 'warning'] [position () = 5] выбирает пятого para дочернего элемента контекстного узла, который имеет атрибут типа со значением предупреждения
  • child :: para [position () = 5] [attribute :: type = "warning"] выбирает пятого para дочернего элемента контекстного узла, если этот дочерний элемент имеет атрибут type со значением warning
  • child :: chapter [child :: title = 'Введение'] выбирает дочерние главы узла контекста, у которых есть один или несколько дочерних элементов title со строковым значением, равным введению
  • child :: chapter [child :: title] выбирает chapter дочерние элементы узла контекста, у которых есть один или несколько дочерних элементов title
  • child :: * [self :: chapter или self :: appendix] выбирает chapter и appendix дочерние элементы узла контекста
  • child :: * [self :: chapter или self :: appendix] [position () = last ()] выбирает последнее chapter или приложение дочерний узел контекста

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

0 голосов
/ 17 сентября 2008

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

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