DOMNode 오브젝트를 받아 innerHTML을 반환.
/** 인수로 받은 노드의 innerHTML을 반환
* @param object $node innerHTML을 얻고자 하는 DOMNode
* @param bool $includeSelf 자기자신의 태그를 포함할 것인지 여부
*
* @return string 추출한 innerHTML
*/
function getInnerHTML($node, $includeSelf=true)
{
if ($node==null) return null;
// 자식노드 추출
$childNodes = $node->childNodes;
$childNodesCount = $childNodes->length;
for ($i=0; $i<$childNodesCount; $i++) {
$item = $childeNodes->item($i);
if (($item->nodeName=='#text') AND (strlen(trim($item->nodeValue))==0)) continue;
$tmpDoc = new DOMDocument('1.0', 'UTF-8');
$tmpDoc->appendChild($tmpDoc->importNode($item, true));
$result .= urldecode($tmpDoc->saveHTML());
unset($tmpDoc);
}
// 자기자신의 태그를 포함
if ($includeSelf===true) {
// 시작태그
$selfTagHead .= "\n<".$node->nodeName;
foreach ($node->attributes as $k=>$v) $selfTagHead .= " ".$v->name."=\"".$v->value."\"";
$selfTagHead .= ">\n";
// 종료태그
$selfTagTail = "</".$node->nodeName.">\n";
$result = $selfTagHead.$result.$selfTagTail;
}
return html_entity_decode(urldecode($result), ENT_NOQUOTES, 'UTF-8');
}
* @param object $node innerHTML을 얻고자 하는 DOMNode
* @param bool $includeSelf 자기자신의 태그를 포함할 것인지 여부
*
* @return string 추출한 innerHTML
*/
function getInnerHTML($node, $includeSelf=true)
{
if ($node==null) return null;
// 자식노드 추출
$childNodes = $node->childNodes;
$childNodesCount = $childNodes->length;
for ($i=0; $i<$childNodesCount; $i++) {
$item = $childeNodes->item($i);
if (($item->nodeName=='#text') AND (strlen(trim($item->nodeValue))==0)) continue;
$tmpDoc = new DOMDocument('1.0', 'UTF-8');
$tmpDoc->appendChild($tmpDoc->importNode($item, true));
$result .= urldecode($tmpDoc->saveHTML());
unset($tmpDoc);
}
// 자기자신의 태그를 포함
if ($includeSelf===true) {
// 시작태그
$selfTagHead .= "\n<".$node->nodeName;
foreach ($node->attributes as $k=>$v) $selfTagHead .= " ".$v->name."=\"".$v->value."\"";
$selfTagHead .= ">\n";
// 종료태그
$selfTagTail = "</".$node->nodeName.">\n";
$result = $selfTagHead.$result.$selfTagTail;
}
return html_entity_decode(urldecode($result), ENT_NOQUOTES, 'UTF-8');
}
'PHP' 카테고리의 다른 글
[PHP] 암호걸린 zip 파일 생성 (0) | 2010.03.16 |
---|---|
[PHP] 특정노드의 XPath 경로 가져오기 (4) | 2009.12.09 |
[PHP] 특정노드를 텍스트노드로 치환 (0) | 2009.12.08 |
[PHP] DOMDocument 하위 노드 전부 삭제 (0) | 2009.12.08 |
[PHP] 정규식 - 한글도메인 (0) | 2009.12.01 |