VB6 - Выберите один узел, используя XPATH с обратной косой чертой, подчеркиванием - PullRequest
0 голосов
/ 12 января 2012

Давненько я не пользовался VB.У меня проблема с запуском запроса XPATH для некоторого XML.

У меня есть следующий XML:

<configuration>
    <my.app.application>
        <dummydatasets>
            <dummydataset tag="\\server\XX_YY_ZZ" />
            <dummydataset tag="default" mode="random" />
        </dummydatasets>
    </my.app.application>
</configuration>

Я пытаюсь найти фиктивный набор данных с использованием XPATH.XPATH для оценки:

// configuration / my.app.application / dummydatasets / dummydataset [@tag = "\\ server \ XX_YY_ZZ"]

Итакэто двойная обратная косая черта, "сервер", косая черта, "XX_YY_ZZ".

Код VB6 выглядит следующим образом:

Dim xmlDoc As New DOMDocument
If xmlDoc.Load(path to xml) Then

    Dim theTag As String
    theTag = "\\server\XX_YY_ZZ"
    Dim xPathQuery As String
    xPathQuery = "//configuration/my.app.application/dummydatasets/dummydataset [@tag='" & theTag & "']"
    Set xmlNode = xmlDoc.selectSingleNode(xPathQuery)

End If

Тег не найден.xmlNode имеет значение Nothing.Однако с помощью утилиты, такой как XML Copy Editor, я могу ввести XPATH, и узел найден.Однако, если я выберу тег по умолчанию, код будет работать нормально.

Я не думал, что возникнет проблема с текстом атрибута тега с обратной косой чертой и подчеркиванием.Надеюсь, я ошибаюсь.

Любые мысли,

Спасибо

Андез

1 Ответ

1 голос
/ 12 января 2012

Я проверил это, и проблема с обратной косой чертой.Подчеркивания были в порядке, но обратная косая черта вызывала проблемы.

Вам нужно указать SelectionLanguage в DOMDocument после его создания:

xmlDoc.setProperty "SelectionLanguage", "XPath"

Вот источник страница .

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