7
<foo>
  a
  <bar> b </bar>
</foo>

$foo->textContent$foo->nodeValueリターンの両方a b

どうすれば取得できaますか(子ノードからのテキストなしで、ノードからのテキスト)

4

3 に答える 3

9

これは役立つかもしれません。ここここで見つけたものを使用する

$txt = "";
foreach($foo->childNodes as $node) {
    if ($node->nodeType == XML_TEXT_NODE) {
        $txt .= $node->nodeValue;
    }
}
于 2013-03-29T12:44:07.657 に答える
4

このコードを試してください

$doc = new DOMDocument();
$doc->loadXML('<root><foo>a<bar>b</bar></foo><foo>bar</foo></root>');
$foos = $doc->getElementsByTagName('foo');
foreach($foos as $v){
   echo $v->firstChild->wholeText.'<br />';
}

firstChildプロパティは、最初の前に「テキスト ノード」があるためDOMNode、オブジェクトを返します。DOMText<bar><foo>

于 2013-03-29T12:45:28.667 に答える
4

使用firstChild:

$foo->firstChild->textContent;
于 2013-03-29T12:37:21.310 に答える