Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
Xpath:使用contains()搜索包含html标记的文本_Html_Xpath - Fatal编程技术网

Xpath:使用contains()搜索包含html标记的文本

Xpath:使用contains()搜索包含html标记的文本,html,xpath,Html,Xpath,我的HTML文档中有一个段落标记,其模式如下: <p> Your email is <strong>some@domain.com</strong> </p> 我还尝试了在没有任何标记的情况下使用它,并用明文对强标记进行编码,但它仍然找不到它。那么如何使用contains来查找包含更多标记的文本呢 您不能这样做,因为xpath无法识别原始标记。一种可能的方法是分别检查文本节点文本和文本,如下所示: //*[contains(text(), "Yo

我的HTML文档中有一个段落标记,其模式如下:

<p>
Your email is <strong>some@domain.com</strong>
</p>

我还尝试了在没有任何标记的情况下使用它,并用明文对强标记进行编码,但它仍然找不到它。那么如何使用contains来查找包含更多标记的文本呢

您不能这样做,因为xpath无法识别原始标记。一种可能的方法是分别检查文本节点文本和
文本,如下所示:

//*[contains(text(), "Your email is ") and strong["some@domain.com"]]

因此,Xpath仅在使用contains()时定位明文?@hussain yes。xpath识别的元素的值是元素中所有文本节点的串联(所有标记都被剥离)。@hussain顺便问一下,您实际上是如何“以明文编码强标记”的?如果标记是在HTML中编码的,那么它将不会被识别为标记,您可以使用xpath匹配它。但是,如果您的意思是只在xpath端编码标记,那么这是行不通的。是的,我只在xpath端编码了标记,这可能是它不起作用的原因,但是的,现在我已经使用
//p[contains(text(),“your email is”)和strong[]some@domain.com“]]
谢谢:)
//*[contains(text(),"Your email is")]
//*[contains(text(), "Your email is ") and strong["some@domain.com"]]