Customxmlnode:有没有办法使用office js获得单个节点?

时间:2018-06-04 20:23:19

标签: javascript office-js

我注意到使用VBO你可以调用方法getSingleNode来获取一个特定的节点对象,是否可以用office js做类似的事情?

此外,我的Word元数据中有一个单选按钮值,我设法访问其customxmlnode对象,然后我使用setTextsync方法将其值从true更改为{{ 1}},但我获得的单选按钮元数据的新值为空。但是,可以正确编辑其他文本类型元数据。 有人能提出一些建议吗?

false

2 个答案:

答案 0 :(得分:0)

请使用您在xmlPart.getNodesAsync(" / ",函数(nodeResults)方法中发送的XPATH表达式。第一个参数是可用于的XPath表达式得到你需要的单个节点。

答案 1 :(得分:0)

正确的XPATH格式不是一种直观的格式,并且Microsoft API文档提供使用通配符( / )xpath的简单示例也无济于事,例如:

xmlPart.getNodesAsync('*', function (nodeResults)

OfficeJS(或SharePoint)将名称空间别名注入到混合中(即/ ns3:...),因此您处在正确的轨道上,但是要获取“ CGI_Address” SharePoint文档属性,您需要此XPATH语法:

var xpath = "/ns0:properties[1]/documentManagement[1]/ns3:CGI_Address[1]";
xmlPart.getNodesAsync(xpath, ...);

GOTCHA:对Word文档所基于的SharePoint内容类型进行重大架构更改时,它可能突然将名称空间别名从“ ns3”更改为“ ns4”,或者实际上是从“ ns4”更改为“ ns3”就像今天我发生了什么-快点走吧?!?

似乎OfficeJS API没有正确实现XPATH,因为尝试使用/ *:CGI_Address 1通配名称空间别名(以便它可以接受/ ns3或/ ns4等)是不起作用的。 SO参考(关于它为什么起作用)-how to ignore namespaces with XPath