当前位置: 首页 > 面试题库 >

在PHP DOM中获取节点的文本

鞠泰平
2023-03-14
问题内容

如何使用PHP DOM从此标记中提取字符串“文本”?

<div><span>notthis</span>text</div>

$div->nodeValue 包括“ notthis”


问题答案:

只要您可以影响DOM,就可以将其删除span

$span = $div->getElementsByTagName('span')->item(0);
$div->removeChild($span);

$nodeValue = $div->nodeValue;

或者,只需访问的文本节点$div

foreach($div->childNodes as $node) {

    if ($node->nodeType != XML_TEXT_NODE) {
        continue;
    }
    $nodeValue = $node;
}

如果最终有更多的文本节点并且只想要第一个,则可以break在的第一个赋值之后$nodeValue



 类似资料:
  • 问题内容: 我有一段这样的HTML: 我有一个与此HTML匹配的WebElement。如何从中仅提取“标题”?方法.getText()返回“ Title \ nAuthor”。 问题答案: 您无法在WebDriver API中执行此操作,而必须在代码中执行。例如: 请注意,结尾的换行符实际上是元素文本的一部分,因此,如果您不想要它,则需要将其删除。

  • 我已经复制了某个节点的xpath Chrome返回 //*[@id=“\uuuuuw2\u cEfEsuQ\u列表项目”]/div/div[2]/div/div[1]/div[2]/a[1] 在Chrome控制台中执行此操作将返回 0可以扩展并包含许多子节点(我删除了其中的大部分,因为我在问题中抱怨代码太多),如下所示: 我需要返回和节点的xpath。我在上尝试了不同的变体,但都没有成功。我该怎么

  • 一个节点就象征着一个数据,现在的或者未来的,它是一种预期,所以我们也对应的有获取即时值和获取未来值两种方式。 获取即时值 对于一个节点来说,访问T value属性是最简单有效的形式,但是由于空值,我们可能需要特殊注意一下: EZRMutableNode<NSNumber *> *node = [EZRMutableNode new]; NSNumber *value = node.value;

  • 问题内容: 我希望获得“我是文本节点”,不希望删除“ edit”标签,并且需要跨浏览器解决方案。 问题答案: 这将获取所选元素的,然后对其应用过滤功能。过滤器功能仅返回文本节点(即带有的节点)。

  • 我必须在JavaSelenium应用程序中解析此元素: 我想得到一个包含所有5个孩子的列表,包括文本。当我使用WebElement中的任何选择器(xpath、cssSelector)时,它只返回4个非文本元素。有人知道怎么做吗?我是硒的新手,以前从未使用过。谢谢

  • 我使用的xml文件“savedwsdl.txt”的部分内容如下... 我写了下面给出的java代码,应该用什么来获取wsdl的子节点名:消息标记名为“debitrequest”