Php Libxml中的Wrap标记
我目前是在现有libxml代码的基础上构建的,找不到详细的文档 是否可以将标记环绕在节点上 我认为这会奏效:Php Libxml中的Wrap标记,php,libxml2,Php,Libxml2,我目前是在现有libxml代码的基础上构建的,找不到详细的文档 是否可以将标记环绕在节点上 我认为这会奏效: $tags = $doc->getElementsByTagName( 'pre' ); foreach( $tags as $tag ): $handler = $doc->createElement( 'div' ); $handler->setAttribute( 'class', 'pre_wrapper' ); $newnode =
$tags = $doc->getElementsByTagName( 'pre' );
foreach( $tags as $tag ):
$handler = $doc->createElement( 'div' );
$handler->setAttribute( 'class', 'pre_wrapper' );
$newnode = $handler->appendChild( $tag );
$tag->replaceNode( $newnode );
endforeach;
问题是
$handler->appendChild($tag)
将元素$tag
从其原始位置取消链接,因此以下replaceNode
没有预期效果。这意味着您必须交换通话顺序。此外,我找不到replaceNode
方法,但必须在父节点上调用replaceChild
:
# Create wrapper element
$handler = $doc->createElement('div');
$handler->setAttribute('class', 'pre_wrapper');
# Replace wrapped element with wrapper
$tag->parentNode->replaceChild($handler, $tag);
# Move wrapped element into wrapper
$handler->appendChild($tag);
不错的:)谢谢。我摆弄了好一阵子,但还是弄不明白:/