dongse5528 2011-08-16 13:08
浏览 63

在DOM中查找最后一个文本节点

I have some html string:

$string - a string taken from user.

$dom = new DomDocument;
$dom ->preserveWhiteSpace = false;
$dom ->loadHTML('<?xml encoding="UTF-8">'.$string);

How can I find a last text node in DOM tree using PHP? What I want to do is to add some extra chars at the end of to finded string. Next I'll replace old text node with the new string.

  • 写回答

1条回答 默认 最新

  • duanmao7553 2011-08-16 13:17
    关注

    Assuming

    $xml = <<< XML
    <a>
        First Text Node
        <b>foo</b>
        Another Text Node
        <c>bar</c>
        Not the last Text Node
        <empty/>
    </a>
    XML;
    

    Using this code:

    $dom = new DOMDocument;
    $dom->loadXml($xml);
    $xp = new DOMXPath($dom);
    $textNodes = $xp->query('//text()');
    $lastTextNode = $textNodes->item($textNodes->length - 1);
    $lastTextNode->nodeValue .= 'some stuff appended to the end';
    echo $dom->saveXml();
    

    will output:

    <?xml version="1.0"?>
    <a>
        First Text Node
        <b>foo</b>
        Another Text Node
        <c>bar</c>
        Not the last Text Node
        <empty/>
    some stuff appended to the end</a>
    

    If this is not what you consider the last node, please clarify the question.

    评论

报告相同问题?

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题