Параметр xPath в getNodesAsync не работает должным образом - PullRequest
0 голосов
/ 09 июля 2020

getNodesAsync имеет параметр под названием xPath, который, я думаю, должен помочь мне запросить мой пользовательский XML. Я думаю, что он неисправен, потому что он возвращает узел только тогда, когда я передаю *. Любой другой путь (даже если он существует) возвращает пустой массив.

enter image description here

Steps to Reproduce

  1. Click Run to add the xml
<AP xmlns="accordproject.org">
  <template xmlns="acceptance-of-delivery">
    <shipper>Aman Sharma</shipper>
  </template> 
</AP>
Get node должен получать узлы в /AP/template. Delete XML удалит пользовательский XML.

Ссылка на фрагмент ScriptLab: https://gist.github.com/algomaster99/fc10bc8fcf3429f1d3ad1fbadaa3216f

1 Ответ

1 голос
/ 12 июля 2020

Думаю, я нашел, как это работает. Похоже, что для настраиваемых частей XML, созданных с помощью API-интерфейсов Common Office JavaScript (в отличие от пользовательских XML частей, созданных в API-интерфейсах c JavaScript, специфичных для Word), Office назначает псевдонимы по умолчанию для пространства имен в порядке: ns0, ns1, et c. Вы должны использовать их в переменных xpath. Итак, в сущности, если вы измените первый параметр вызова с getNodesAsync на "/ns0:AP/ns1:template", он будет работать.

...