没有子元素的元素的PHP DOMDocument值

时间:2012-09-27 16:31:31

标签: php html domdocument

我有一个看起来像这样的DOMDocument:

<font size="6" face="Arial">
CONTENT
    <font size="5" face="Arial">...</font>
    <br>
    <table cellspacing="1" cellpadding="1" border="3" bgcolor="#E7E7E7" rules="all">...</table>
    <table cellspacing="1" cellpadding="1">...</table>
    <font size="3" face="Arial" color="#000000">...</font>
</font>

现在我想获得内容而不是所有其他子元素。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以做的是抓住第一个<font>标记的第一个DOMText节点。

// Get the first <font> tag
$font = $doc->getElementsByTagName( 'font')->item(0);

// Find the first DOMText element
$first_text = null;
foreach( $font->childNodes as $child) {
    if( $child->nodeType === XML_TEXT_NODE) {
        $first_text = $child; 
        break;
    }
}

if( $first_text != null) {
    echo 'OUTPUT: ' . $first_text->textContent;
}

你可以从the demo看到这打印:

OUTPUT: CONTENT

答案 1 :(得分:0)

更短的:

$output = $xml->getElementsByTagName("font")->item(1)firstChild->textContent;

nickb的解决方案也有效,如果CONTENT来自其中一个子孩子,那就更好了。但是因为在我的情况下不这样做,所以这个更短。

相关问题