Как получить необходимый элемент XML из плохо сформированных данных XML на сервере SQL - PullRequest
0 голосов
/ 19 октября 2010

В моей таблице базы данных SQL 2008 у меня есть одно имя столбца AUTHOR, которое содержит данные XML. XML не правильно сформирован и содержит данные, подобные приведенным ниже

<Author>
<ID>172-32-1176</ID>
<LastName>White</LastName>
<FirstName>Johnson</FirstName>
<Address>
<Street>10932 Bigge Rd.</Street>
<City>Menlo Park</City>
<State>CA</State>
</Address>
</Author>

Некоторые XML содержат все вышеперечисленные данные, а некоторые содержат только один тег.

<ID>172-32-1176</ID>

Я хочу написать запрос, который возвращает мне столбец как идентификатор. Я пытался использовать AUTHOR.query ('data (/ Author / ID)')) в качестве идентификатора, но он не работает, если в XML нет узла Author.

Спасибо, Виджей

Ответы [ 2 ]

2 голосов
/ 19 октября 2010

Вы пробовали что-то вроде /Author/ID|/ID? то есть попробовать для первого сценария, а без совпадения - для второго?

(обратите внимание, что оператор | является оператором объединения множеств, как описано здесь )

0 голосов
/ 19 октября 2010

В случае, если ничего не может быть «определенного» в XML, за исключением того, что уникальный элемент ID содержит требуемое значение идентификатора, тогда следующее выражение XPath выбирает элемент ID:

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