Perl:按ID更改html元素标签

时间:2016-02-01 23:46:31

标签: html perl

使用perl的人如何使用html元素的ID更改html元素的值。你是如何在代码中做到的。

例如:

        <div id="container">
            <form id="form" action="../code.cgi" method="post">
                <label id="lblMessage" class="text">Message</label>
            </form>
        </div>

如何更改perl脚本中的标签文本?

2 个答案:

答案 0 :(得分:2)

获取HTML或XML parser找到该元素(例如,通过XPath expression),并删除其所有子文本节点,并添加包含所需文本的新文本节点。

use strict;
use warnings;
use XML::LibXML;

my $dom = XML::LibXML->load_html(location => 'myfile.html');
my $xpath = XML::LibXML::XPathContext->new($dom);
foreach my $label ($xpath->findnodes('//label[@id="lblMessage"]')) {
    $label->removeChildNodes();
    $label->addChild($dom->createTextNode("new text"));
}

警告:如果您的标签中还有其他节点(元素,如<b><span>),这些节点也会被删除。

您可能需要添加一些代码才能将修改后的html写回文件。

答案 1 :(得分:1)

我个人喜欢HTML::TreeBuilder这类任务。

CTLNames