Запрос XPath Powershell для строки - PullRequest
       4

Запрос XPath Powershell для строки

0 голосов
/ 13 сентября 2010

Я хотел бы знать, как искать строку в документе XML. Тип объекта - System.Xml.XmlNode.XmlDocument. Строка может быть чем угодно с документом. То есть атрибут или элемент.

Я пытался

Select-Xml -Xml $ xml -XPath "./Test"

но результатов нет

1 Ответ

2 голосов
/ 13 сентября 2010

Шаблон, который вы пытаетесь использовать, выбирает корневые узлы с именем Test.

Вы можете использовать шаблон (//text()|//@*)[contains(string(), "test")], который выбирает атрибуты, содержащие строку test или текстовые узлы , которые ее содержат (то есть не элементы).

Но вы хотите выбрать элементы, верно? Использование (//*|//@*)[contains(., "test")] делает это, но выбирает элементы, которые содержат строку test, даже если это через какой-то дочерний элемент, что тоже не то, что нужно.

Так что я думаю, вам придется использовать что-то вроде (//*[contains(text(), "test")]|//@*[contains(., "test")]), которое дает вам то, что вы хотите, но не очень красиво.

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