При программировании модели MSXML DOM используйте функцию contains() XPath.
В этой статье показано, как использовать функцию contains() XPath
при программировании модели MSXML DOM.
Исходная версия продукта: Microsoft XML
Исходный номер базы знаний: 304265
Сводка
При использовании модели DOM документов Microsoft XML (MSXML) в коде для загрузки и анализа XML-документа обычно используется программирование для идентификации элементов и (или) элементов с атрибутами, данные которых содержат указанное строковое значение или слово. В этой статье представлен пример кода, демонстрирующий использование строковой функции contains XML Path Language (XPath) для реализации этого требования.
Пошаговый пример
В Блокноте создайте новый XML-документ с именемBooks.xmlи вставьте следующий XML-код:
<?xml version="1.0"?> <!-- This file represents a fragment of a bookstore inventory database --> <bookstore specialty="novel"> <book> <Title>Beginning XML</Title> <Publisher>Wrox</Publisher> </book> <book> <Title>Professional XML</Title> <Publisher>Wrox</Publisher> </book> <book> <Title>Programming ADO</Title> <author> <first-name>Mary</first-name> <last-name>Bob</last-name> </author> <datePublished>1/1/2000</datePublished> <Publisher>Microsoft Press</Publisher> </book> </bookstore>
Сохраните Books.xml в корневой папке диска C.
Откройте новый проект EXE уровня "Стандартный" в Microsoft Visual Basic. Форма Form1 создается по умолчанию.
В меню Проект выберите ссылки, а затем выберите поле Microsoft XML 3.0 проверка.
Перетащите кнопку Command и перетащите ее на Form1.
Скопируйте и вставьте следующий код в процедуру события Click кнопки Command:
Dim doc As MSXML2.DOMDocument Dim nlist As MSXML2.IXMLDOMNodeList Dim node As MSXML2.IXMLDOMNode Set doc = New MSXML2.DOMDocument doc.setProperty "SelectionLanguage", "XPath" doc.Load "c:\books.xml" Set nlist = doc.selectNodes("//book/Title[contains(.,'ADO')]") MsgBox "Matching Nodes : " & nlist.length For Each node In nlist Debug.Print node.nodeName & " : " & node.Text Next
Приведенный выше код загружает XML-код из Books.xml в экземпляр объекта DOMDocument MSXML. Затем выполняется запрос XPath, который использует функцию
contains XPath
для идентификации всех названий книг, содержащих слово ADO. Наконец, цикл For выполняет итерацию по выбранным узлам и отображает соответствующие заголовки, которые были определены при выполнении запроса XPath.Первый параметр
contains XPath
функции используется для указания исходного узла или строки, для которых будет выполнено сравнение. Второй параметр — это строка, указывающая слово или строковое значение для поиска в исходном узле. Важно помнить, что строка или слово, предоставленные в качестве второго параметра функции contains, чувствительны к регистру.