在docx4j中使用xpath搜索通配符

时间:2018-10-06 23:07:14

标签: java xpath saxon docx4j xpath-2.0

嗨,可以在docx4j中用xpath搜索通配符吗?

考虑以下示例:

<w:r>
    <w:rPr>
       <w:lang w:bidi="fa-IR" />
    </w:rPr>
    <w:t>priority: {priority}</w:t>
</w:r>
<w:r>
    <w:rPr>
       <w:lang w:bidi="fa-IR" />
    </w:rPr>
    <w:t>{effectiveLocations}</w:t>
</w:r>

我需要找到所有文本包含 * {*} * 的运行,这意味着我需要在上面的示例中同时获得这两个运行。

但是docx4j使用XPath 1.0,因此它不支持匹配查询,还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

https://docx4java.org/docx4j/docx4j-nightly-20181009.jar包含https://github.com/plutext/docx4j/commit/cab8adcb768c18103e7a9b48ac39dc8fcde5ff0c

因此,如果您的课程路径为https://search.maven.org/artifact/net.sf.saxon/Saxon-HE/9.9.0-1/jar

您可以执行以下操作:

XPathFactoryUtil.setxPathFactory(
        new net.sf.saxon.xpath.XPathFactoryImpl());