我有一个OOXML(来自Word .docx文件),如下所示:
//w:tr[descendant::text()[contains(., "~TABLE_xxx~")]]
我想找到后代文本包含的所有元素" ~TABLE_xxx~ "。
我尝试了以下内容:
<w:tr>
但是,这只匹配我的doc的第一个<w:r>
。我的猜测是,因为第二个文本在不同的{{1}}(Word&#34;运行&#34;文本)中分割了文本,所以我没有得到匹配。
这是怎么回事?
答案 0 :(得分:0)
按&#39; xxx&#39;不是一个选择?
//w:tr[descendant::text()[contains(., "xxx")]]
答案 1 :(得分:0)
测试文本节点是错误的方法,特别是对于OOXML,它经常将字符串分解为w:r
次运行。相反,请测试string-values。
这个XPath,
//w:tr[contains(.,"~TABLE_xxx~")]
将选择其字符串值包含目标字符串的所有w:tr
个元素。