Как вы используете XPath, чтобы подтвердить, найден ли элемент Form в переданной разметке для loadXML? - PullRequest
0 голосов
/ 12 августа 2010
  Set objNoFormCheckXMLDOM = CreateObject("Microsoft.XMLDOM")
  objNoFormCheckXMLDOM.async = "false"
  objNoFormCheckXMLDOM.setProperty "SelectionLanguage", "XPath"
  objNoFormCheckXMLDOM.LoadXML(strHtmlResponse)
  Set nlForms = objNoFormCheckXMLDOM.selectNodes("form")

У меня есть вышеупомянутый VBScript в функции.strHtmlResponse содержит разметку в виде строки, я хочу иметь возможность проверить ее на наличие элемента формы на любом уровне, включая корневой.Приведенный выше пример не возвращает никаких узлов в списке узлов nlForms.Кто-нибудь знает, как я могу это сделать?

Спасибо

Ответы [ 3 ]

1 голос
/ 12 августа 2010
Set nlForm = objNoFormCheckXMLDOM.SelectSingleNode("//form") 

If Not nlForm Is Nothing

rem nlForm contains the first form element in the XML document
0 голосов
/ 12 августа 2010

Да, здесь говорит: http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.loadxml.aspx

XmlException

В XML есть ошибка загрузки или разбора. В этом случае документ остается пустым .

Вместо этого мне придется попытаться сделать это с помощью регулярного выражения, если у кого-то нет лучшего предложения.

0 голосов
/ 12 августа 2010

Попробуйте //form в качестве выражения xpath. // означает включение всех узлов-потомков в поиск.

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