选择具有特定文本的节点,其中包含引号

时间:2013-06-12 15:44:01

标签: python xml string xpath file-io

我有一个XML文档,我使用xpath来查找使用该文本的特定节点。

例如,我想要找到的产品是具有许多产品节点的文件中的以下产品节点。

<product>
    <code>10023</code>
    <name>
        <value language="en_US">There's Pippins and Cheese to Come</value>
        <value language="en_CA">There's Pippins and Cheese to Come</value>
    </name>
</product>

我正在使用xpath查询

node = self.productDoc.xpath("/product[name/value[text() = '{0}']]".format(self.Title))

来自Lxml模块的productDoc = etree.parse(FileLocation)

我的问题是:当我尝试选择上面提供的xpath路径的节点时,我得到无效的谓词。 我相信这个问题就是&#34;那里的Pippins和奶酪中的单引号&#34;文本 这是在弄乱xpath路径。 我该如何克服这个问题?

1 个答案:

答案 0 :(得分:0)

单引号导致问题,您需要以某种方式在xpath中转义它或使用双引号,这应该可以工作

node = self.productDoc.xpath("/product[name/value[text() = \"{0}\"]]".format(self.Title))