Я просто не могу это понять. Таким образом, у меня есть следующий XML:XPath: выберите ребенка на основе братьев и сестер, где есть «близнецы»
<config>
<environment>
<loc>eu</loc>
<url>something</url>
</environment>
<environment>
<loc>au</loc>
<loc>ap</loc>
<url>somethingElse</url>
</environment>
Я хочу, чтобы получить <url>
элемента на основании данного <loc>
.
У меня есть следующий XPath, который работает, если я хочу <url>
для ес но не работает для если я хочу его ар.
Works (возвращает 'что-то')
/config/environment[loc="eu"]/url
не работает (ничего не возвращает, ожидающей 'somethingElse')
/config/environment[loc="ap"]/url
Я знаю /config/environment[loc[1]="ap"]/url
будет работать, но я мог бы любое количество элементов <loc>
, поэтому я не хочу, чтобы мой XPath был таким статическим/зависящим от позиции.
Любая помощь придумать, я предполагаю, что это простая настройка, поэтому я могу получить <url>
независимо от порядка <loc>
.
'/ конфигурации/окружающей среды [LOC = "ар"]/url' должны работали. Как вы запустили xpath? Какая среда? он вернул мне 'somethingElse', по крайней мере [здесь] (http://www.freeformatter.com/xpath-tester.html) – har07
на самом деле вы правы @ har07. Я пытался сделать это в VBA (используя MSXML v4.0), но если я изменю свою ссылку на MSXML v6.0, то мой оригинальный XPath действительно работает. Возможно, другая версия XPath? – markblandford
Я действительно подозреваю, что вам просто нужно сделать: 'dom.setProperty" SelectionLanguage "," XPath "'. Кажется, что xpath не является языком выбора по умолчанию в старшем MSXML. : https://support.microsoft.com/en-us/kb/288913 – har07