`getNodesAsync` 中的 xPath 参数未按预期工作
xPath parameter in `getNodesAsync` is not working as expected
getNodesAsync
有一个名为 xPath
的参数,我认为它应该可以帮助我查询我的自定义 XML。我认为它出现故障,因为当我通过 *
时它只 returns 节点。任何其他路径(即使它存在),returns 一个空数组。
重现步骤
- 点击
Run
添加xml
<AP xmlns="accordproject.org">
<template xmlns="acceptance-of-delivery">
<shipper>Aman Sharma</shipper>
</template>
</AP>
Get node
应该获取 /AP/template
处的节点。
Delete XML
将删除自定义XML.
Link 到 ScriptLab 片段:https://gist.github.com/algomaster99/fc10bc8fcf3429f1d3ad1fbadaa3216f
我想我已经找到它的工作原理了。似乎对于使用 Common Office JavaScript API 创建的自定义 XML 部件(不同于在特定于 Word 的 JavaScript API 中创建的自定义 XML 部件), Office 按顺序为命名空间分配默认别名:ns0
、ns1
等。您必须在 xpath 变量中使用这些别名。所以在你的要点中,如果你将调用的第一个参数更改为 getNodesAsync
到 "/ns0:AP/ns1:template"
它有效。
getNodesAsync
有一个名为 xPath
的参数,我认为它应该可以帮助我查询我的自定义 XML。我认为它出现故障,因为当我通过 *
时它只 returns 节点。任何其他路径(即使它存在),returns 一个空数组。
重现步骤
- 点击
Run
添加xml
<AP xmlns="accordproject.org">
<template xmlns="acceptance-of-delivery">
<shipper>Aman Sharma</shipper>
</template>
</AP>
Get node
应该获取/AP/template
处的节点。Delete XML
将删除自定义XML.
Link 到 ScriptLab 片段:https://gist.github.com/algomaster99/fc10bc8fcf3429f1d3ad1fbadaa3216f
我想我已经找到它的工作原理了。似乎对于使用 Common Office JavaScript API 创建的自定义 XML 部件(不同于在特定于 Word 的 JavaScript API 中创建的自定义 XML 部件), Office 按顺序为命名空间分配默认别名:ns0
、ns1
等。您必须在 xpath 变量中使用这些别名。所以在你的要点中,如果你将调用的第一个参数更改为 getNodesAsync
到 "/ns0:AP/ns1:template"
它有效。