问题描述
此命令按预期工作并返回 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 文本应该没有问题。 我已经使用我在此处找到的实用程序对其进行了检查...
解决方法
这是 Perl 模块 probably a bug 中的 XML::XPath,xpath
实用程序是其中的一部分。似乎命令行参数没有从 UTF-8 正确解码。运行可能会起作用
PERL5OPT=-CA xpath -e "/feed/entry[author/name='संतोष गोरे']" myfile.txt