【发布时间】:2021-09-25 18:44:23
【问题描述】:
此命令按预期工作并返回 1 个节点。
# cat myfile.txt
<feed>
<entry>
<author>
<name>Amar joshi</name>
</author>
</entry>
</feed>
# xpath -e "/feed/entry[author/name='Amar joshi']" myfile.txt
Found 1 nodes in myfile.txt:
但事实并非如此。
<feed>
<entry>
<author>
<name>संतोष गोरे</name>
</author>
</entry>
</feed>
xpath -e "/feed/entry[author/name='संतोष गोरे']" myfile.txt
文件和命令非常相似。 unicode 文本应该没有问题。 我已经使用我在此处找到的实用程序进行了检查...
【问题讨论】:
-
您没有说明您使用什么软件进行 XPath 评估。也许更重要的是,您没有说明您正在使用什么外壳,或者它是如何配置的。命令行工具通常不太擅长 Unicode。
-
# 使用 ubuntu # 安装使用 apt install libxml-xpath-perl # /bin/bash # AWS ec2 instance t4g.small
-
那么这可能是Perl模块
XML::XPath的一个bug。似乎命令行参数没有从 UTF-8 正确解码。运行PERL5OPT=-CA xpath -e ...可能会起作用。 -
是的。这是正确的@nwellnhof 你能把它作为答案发布吗?
标签: xpath unicode unicode-string unicode-literals