我正在尝试获取在特定div
标记之后立即出现的标记。例如,我有html代码
<div id="example">
<h2>Example</h2>
<p>Hello !World</p>
</div>
我正在做以下事情,
while ( $tag = $stream->get_tag('div') ) {
if( $tag->[1]{id} eq 'Example' ) {
$tag = $stream->get_tag;
$tag = $stream->get_tag;
if ( $tag->[0] eq 'div' ) {
...
}
}
}
但这会引发错误
Can't use string ("</h2>") as a HASH ref while "strict refs" in use
如果我说,它可以正常工作
$tag = $stream->get_tag('h2');
$tag = $stream->get_tag('p');
但我不能那样,因为我需要立即获得两个标签,并验证它们是否符合我的期望。
答案 0 :(得分:1)
告诉你是否发布了一个可运行的示例程序会更容易,但看起来问题是你没有意识到get_tag
同时返回了start 和结束标记。结束标记没有属性。开始标记返回为[$tag, $attr, $attrseq, $text]
,结束标记返回为["/$tag", $text]
。