使用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脚本中的标签文本?
答案 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