INCLUDETEXT通过XPath选择特定节点

时间:2017-01-31 12:53:17

标签: xml xpath ms-word

我正在尝试使用INCLUDETEXTxml填充Word文档中的field

我想根据Xpath查询获取一个特定节点,该查询根据子节点值的值选择节点。

例如,对于以下xml:

<a:events xmlns:a="http://a.foo.org/">  
  <a:event> 
    <a:title>Number 1</a:title>  
    <a:status>Draft</a:status>  
    <a:description/> 
  </a:event>  
  <a:event> 
    <a:title>Number 2</a:title>  
    <a:status>Live</a:status>  
    <a:description/> 
  </a:event>  
</a:events>

XPath查询a:events/a:event[a:status='Live']/a:title应该抓取元素节点<a:title>Number 2</a:title>。我已经证实这可行。

但是,在Word中,以下INCLUDETEXT不起作用。

{ INCLUDETEXT  "foo.xml" \n xmlns:a=\"https://a.foo.org\" \x a:events/a:event[a:status='Live']/a:title \* MERGEFORMAT}

INCLUDETEXT field中未显示任何内容。我可以使用其他基本的XPath查询,包括[]选择器,但这不足以满足我的需求。

是否支持此类XPath?我在网上搜索了一个答案,但这个功能似乎没有记录得那么好。

1 个答案:

答案 0 :(得分:0)

以为我会回答这个问题以防万一其他人坚持这个。

诀窍最终是将XPath表达式放在引号中:

{ INCLUDETEXT  "foo.xml" \n xmlns:a=\"https://a.foo.org\" \x "a:events/a:event[a:status='Live']/a:title" \* MERGEFORMAT}

一旦放在引号中,所有都按预期工作。