我有一个看起来像这样的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>
现在我想获得内容而不是所有其他子元素。
我该怎么做?
答案 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来自其中一个子孩子,那就更好了。但是因为在我的情况下不这样做,所以这个更短。