Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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
PHP HTML DOM从标记中提取文本,而不在嵌套标记中包含文本_Php_Dom - Fatal编程技术网

PHP HTML DOM从标记中提取文本,而不在嵌套标记中包含文本

PHP HTML DOM从标记中提取文本,而不在嵌套标记中包含文本,php,dom,Php,Dom,我有以下格式的html <html> <body> <div> Hello <span>world1 </span> <span>world2 </span> <span>world3 </span&g

我有以下格式的html

<html>
    <body>
        <div>
            Hello
            <span>world1
            </span> 
            <span>world2
            </span> 
            <span>world3
            </span> 
        </div>
        <div>
            Hello
            <span>world1
            </span> 
            <span>world2
            </span> 
            <span>world3
            </span> 
        </div>
    </body>
</html>

你好
世界1
世界2
世界3
你好
世界1
世界2
世界3
我需要从div中提取数据,但不包括span..中的文本,并将其存储在一个变量中,然后将每个div中第三个span中的文本提取到另一个变量中。 在第一个变量中,我需要Hello。 在第二个变量中,我需要world3。 如何做到这一点。
每个div的nodeValue属性返回包含跨距内的文本。如何避免在div的
childNodes
上迭代,并从属于textNodes的所有childNodes的nodeValue构建一个字符串(它们的
nodeType
3

我认为您正在寻找类似的内容


我尝试了$div->getElementsByTagName('div')并遍历了每个div并提取了节点值..但它也包括span标记中的文本..我需要避免这样做为什么不比较节点类型^^
document.getElementsByTagName("div")[0].childNodes[0].textContent;
document.getElementsByTagName("div")[0].childNodes[5].textContent;