ai didi

xpath - XQuery寻找带有 'single'引用的文本

转载 作者:行者123 更新时间:2023-12-03 15:24:32 24 4
gpt4 key购买 nike

我不知道如何使用XPATH搜索包含单引号的文本。

例如,我在此问题的标题上加了引号。下一行

$x("//*[text()='XQuery looking for text with 'single' quote']")

返回一个空数组。

但是,如果我尝试以下
$x("//*[text()=\"XQuery looking for text with 'single' quote\"]")

它的确返回了页面标题的链接,但是我希望能够在其中接受单引号和双引号,因此我不能只为单引号/双引号量身定制它。

您可以在此页面的chrome或firebug的控制台中尝试。

最佳答案

这是一个变通方法(感谢Dimitre Novatchev),使我可以搜索xpaths中的任何文本,无论它包含单引号还是双引号。用JS实现,但可以轻松翻译成其他语言

function cleanStringForXpath(str)  {
var parts = str.match(/[^'"]+|['"]/g);
parts = parts.map(function(part){
if (part === "'") {
return '"\'"'; // output "'"
}

if (part === '"') {
return "'\"'"; // output '"'
}
return "'" + part + "'";
});
return "concat(" + parts.join(",") + ")";
}

如果我正在寻找 I'm reading "Harry Potter",可以执行以下操作
var xpathString = cleanStringForXpath( "I'm reading \"Harry Potter\"" );
$x("//*[text()="+ xpathString +"]");
// The xpath created becomes
// //*[text()=concat('I',"'",'m reading ','"','Harry Potter','"')]

这是一个(短得多的)Java版本。如果删除类型信息,则它与JavaScript完全相同。感谢 https://stackoverflow.com/users/1850609/acdcjunior
String escapedText = "concat('"+originalText.replace("'", "', \"'\", '") + "', '')";!

关于xpath - XQuery寻找带有 'single'引用的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13482352/

24 4 0
文章推荐: haskell - 在 Haskell 中获取矩阵的所有对角线
文章推荐: xpath - 使用XPath选择不带 namespace 的节点
文章推荐: haskell - 在haskell中记录具有多个构造函数的类型
文章推荐: xpath - HTML Agility Pack - 使用 XPath 获取单个节点 - 未将对象引用设置为对象的实例
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com