【问题标题】:PHP HTML DOM extracting text from a tag without including text in nested tagsPHP HTML DOM从标签中提取文本而不在嵌套标签中包含文本
【发布时间】:2013-02-12 08:19:30
【问题描述】:

我有以下格式的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>

我需要从 div 中提取数据而不包括跨度内的文本..并将其存储在一个变量中,然后在另一个变量中提取每个 div 内的第三个跨度内的文本。 IE。在第一个变量中我需要你好。 在第二个变量中,我需要 world3。 怎么做 。 每个 div 的 nodeValue 属性返回文本,包括跨度内的文本。如何避免这种情况

【问题讨论】:

  • 我尝试了 $div->getElementsByTagName('div') 并遍历了每个 div 并提取了节点值..但它也包含 span 标签内的文本....我需要避免这种情况

标签: php dom


【解决方案1】:

遍历 div 的 childNodes 并从所有作为 textNodes 的 childNodes 的 nodeValues 构建一个字符串(它们有 nodeType3

【讨论】:

  • 为什么不比较nodeType ^^
【解决方案2】:

我认为您正在寻找这样的东西。 fiddle

document.getElementsByTagName("div")[0].childNodes[0].textContent;
document.getElementsByTagName("div")[0].childNodes[5].textContent;

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 2018-07-30
    • 1970-01-01
    • 2020-11-21
    相关资源
    最近更新 更多