Использование функции XPath starts-with()
В этой статье описывается использование starts-with()
функции XPath.
Исходная версия продукта: Microsoft XML
Исходный номер базы знаний: 303516
Сводка
Это распространенное требование программирования при загрузке и анализе XML-документа с помощью модели DOM документов Microsoft XML (MSXML) для идентификации элементов и (или) элементов с атрибутами, значения которых начинаются с определенного символа или последовательности символов. Эта статья содержит пример кода, демонстрирующий, как можно использовать starts-with
строковую функцию языка XML-пути (XPath) для реализации этого требования.
Пошаговый пример
В Блокноте создайте новый XML-документ с именемBooks.xmlи вставьте следующий XML-код:
<?xml version="1.0"?> <!-- This file represents a fragment of a bookstore inventory database --> <bookstore specialty="novel"> <book style="autobiography"> <author> <first-name>Joe</first-name> <last-name>Bob</last-name> <award>Trenton Literary Review Honorable Mention</award> </author> <price>12</price> </book> <book style="textbook"> <author> <first-name>Mary</first-name> <last-name>Bob</last-name> <publication>Selected Short Stories of <first-name>Mary</first-name> <last-name>Bob</last-name> </publication> </author> <price>55</price> </book> </bookstore>
Сохраните Books.xml в корневой папке диска C.
Откройте новый проект СТАНДАРТНОГО EXE в 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/author/first-name[starts-with(.,'M')]") MsgBox "Matching Nodes : " & nlist.length For Each node In nlist Debug.Print node.nodeName & " : " & node.Text Next
Приведенный выше код загружает XML-код из Books.xml в экземпляр объекта MSXML
DOMDocument
. Затем он выполняет запрос XPath, который используетstarts-with
функцию XPath для идентификации всех авторов, имена которых начинаются с буквы M. Наконец, цикл For выполняет итерацию по выбранным узлам и отображает имена соответствующих элементов автора.Первый параметр
starts-with
функции XPath используется для указания исходного узла или строки, для которых будет выполнено сравнение. Второй параметр — это строка шаблона, указывающая символ или последовательность символов, которая будет использоваться при сравнении. Важно помнить, что строка шаблона, которая предоставляется в качестве второго параметраstarts-with
функции, учитывает регистр.