使用 https://www.tachytelic.net/2021/05/power-automate-extract-text-from-word-docx-file/ 上的优秀指南,我可以设置 Power Automate 流程来提取DOCX 文件中的文本内容。获取文件内容后,我有一个具有以下表达式的撰写操作:
xpath(xml(outputs('Get_file_content')?['body']), '//*[name()=''w:t'']/text()')
这可以提取内容,但是,缺点之一是文本通常可以从 document.xml 文件中拆分为多个 w:t 节点,从而导致文本的每个部分都作为其自己的单独对象在撰写输出。例如,撰写操作的输出可能如下所示:
[
"If ",
"not, ",
"this needs to be documented. "
]
但是,文档中出现的上述文本实际上应该是:
[
"If not, this needs to be documented."
]
由于此文本包含在单个表格单元格中,是否可以调整上面的 XPath 表达式,以便它以某种方式连接或组合 w:t 节点(每个表格单元格)中的所有文本,以便文本值“在最终的 Compose 对象中不会以这种方式分割吗?
我会选择简单地用
join()
函数包装你的表达式...
join(xpath(xml(variables('XML')), '//*[name()=''w:t'']/text()'), '')
...您可以将分隔符更改为您想要的。
由于 power-automate 仅支持 xpath 1.0,因此您被迫使用 xpath 范围之外的内容,例如 @Skin
的答案如果您想要每个单元格中的这些字符串,您可以首先使用此 xpath:
//*[name()='w:tc']
并用以下方法循环该结果:
join(xpath(xml(variables('XML')), './/*[name()=''w:t'']/text()'), '')
注意
.
作为第二个 xpath 的开始,因此它将使用当前上下文。