Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带双引号的PostgreSQL xpath匹配_Sql_Xml_Postgresql_Xpath_Escaping - Fatal编程技术网

带双引号的PostgreSQL xpath匹配

带双引号的PostgreSQL xpath匹配,sql,xml,postgresql,xpath,escaping,Sql,Xml,Postgresql,Xpath,Escaping,我在Postgressql9.3中使用xpath搜索包含双引号内容的节点。 我试过“和”t;“替换“”,但它们都不起作用。“concat”似乎也不起作用。我在网上找不到工作方法。有人能告诉我如何避开双引号吗 查询: select xpath(E'//book[title = "["a book"]"]/price/text()', xmlparse(document b.content))::text[] from booksite b XML内容,如: <book>

我在Postgressql9.3中使用xpath搜索包含双引号内容的节点。 我试过“和”t;“替换“”,但它们都不起作用。“concat”似乎也不起作用。我在网上找不到工作方法。有人能告诉我如何避开双引号吗

查询:

select
    xpath(E'//book[title = "["a book"]"]/price/text()', xmlparse(document b.content))::text[]
from
    booksite b
XML内容,如:

<book>
  <title>["a book"]</title>
  <price>29.99</price>
</book>

[“一本书”]
29.99

XPath 1.0没有提供转义引号的方法。请改用单引号作为XPath字符串分隔符,因为可以通过将它们加倍来转义SQL中的单引号:

select
    xpath(E'//book[title = ''["a book"]'']/price/text()', xmlparse(document b.content))::text[]
from
    booksite b

XPath 1.0没有提供转义引号的方法。请改用单引号作为XPath字符串分隔符,因为可以通过将它们加倍来转义SQL中的单引号:

select
    xpath(E'//book[title = ''["a book"]'']/price/text()', xmlparse(document b.content))::text[]
from
    booksite b
您可以使用:

输出:

╔═══════╗
║ xpath ║
╠═══════╣
║ 29.99 ║
╚═══════╝
您可以使用:

输出:

╔═══════╗
║ xpath ║
╠═══════╣
║ 29.99 ║
╚═══════╝