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
DOM检查是否存在包含html内容的节点_Dom_Xpath_Html Parsing - Fatal编程技术网

DOM检查是否存在包含html内容的节点

DOM检查是否存在包含html内容的节点,dom,xpath,html-parsing,Dom,Xpath,Html Parsing,我有一个XML内容 <p> This is my <em>Styled</em> content. </p> 这是我的风格内容。 我需要做的是检查字符串 This is my <em>Styled</em> content. 这是我的风格化内容。 在DOM上退出。我该怎么做?我尝试使用XPath text(),但这去掉了。有关于这个的指示吗 您必须了解,DOM是一个节点的树模型,不包含您正在寻找的任何标记

我有一个XML内容

<p>
    This is my <em>Styled</em> content.
</p>

这是我的风格内容。

我需要做的是检查字符串

This is my <em>Styled</em> content.
这是我的风格化内容。

在DOM上退出。我该怎么做?我尝试使用XPath text(),但这去掉了
。有关于这个的指示吗

您必须了解,DOM是一个节点的树模型,不包含您正在寻找的任何标记元素或标记,在您的示例中有一个
p
元素节点,包含多个子节点、一个文本节点、一个
em
元素节点和另一个文本节点。根据DOM实现的不同,可能会在节点上公开一些属性或方法来将它们序列化回标记,例如.NET framework中的DOM API具有属性,因此您可以在其中检查,例如
p.InnerXml.Contains(“这是我的样式化内容”)
。浏览器中支持innerHTML属性,因此使用浏览器中的Javascript,您可以以类似的方式检查该属性。

XPath将去掉标记,因为它将其作为xml节点读取。如果要搜索

中的“文本”,请使用:contains(//p,“searchcriteria”)。如果还要检查标记,请使用://p/child::*[contains(name(),“em”)]搜索的子节点名,以查找这些特定标记