gpt4 book ai didi

html - 删除包含模式的 HTML 元素

转载 作者:行者123 更新时间:2023-11-28 02:41:55 25 4
gpt4 key购买 nike

如何删除文本包含 <span> 的元素(从 </span>PATTERN)在里面?元素的内容应与元素一起删除。

比如我要删除第一个<span>...</span>以下元素:

<span><SPAN>some text with
with </SPAN> a PATTERNin it etc</span><span><SPAN>some text
without </SPAN> a thingIn it etc</span>

仅使用 SED 生成:

<span><SPAN>some text
without </SPAN> a thingIn it etc</span>

PS:行尾或单字没有帮助,它必须检测任何 <span>...</span>PATTERN .

生产服务器只允许基本命令,例如 SED。我目前正在使用以下内容,但它很丑而且似乎不起作用。

sed '/<span.*\n.*PATTERN.*<\/span>/d'

最佳答案

如果是 HTML:

perl -MXML::LibXML -e'
my $parser = XML::LibXML->new();
my $doc = $parser->parse_html_file($ARGV[0]);
$_->unbindNode()
for $doc->findnodes(q{//span[contains(text(), "PATTERN")]});

binmode(STDOUT);
print($doc->toString());
' in.html >out.html

如果是 XHTML:

perl -MXML::LibXML -e'
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($ARGV[0]);
my $xpc = XML::LibXML::XPathContext->new();
$xpc->registerNs( h => "http://www.w3.org/1999/xhtml" );
$_->unbindNode()
for $xpc->findnodes(q{//h:span[contains(text(), "PATTERN")]}, $doc);

binmode(STDOUT);
print($doc->toString());
' in.xhtml >out.xhtml

以上两者都产生以下结果(有一些隐含的元素被激活):

<span><SPAN>some text
without </SPAN> a thingIn it etc</span>

关于html - 删除包含模式的 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43789019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com