php dom在nest中获取nodevalue

时间:2015-03-24 08:32:47

标签: php dom

我有一个像这样的xml树:

<root>
    <a>This is a</a>
    <b>
        <b-1>Im a child of b-1</b-1>
        <b-1>Im a child of b-1</b-1>
    </b>
</root>

我累了

$str = $dom->getElementsByTagName("b")->item(1);
$str->nodeValue;

这会将nodevalue输出为整个字符串,如何单独获取nodevalue?

1 个答案:

答案 0 :(得分:0)

您需要以这种方式遍历每个<b>及其子节点:

foreach ($dom->getElementsByTagName("b") as $b) {   // 1
    foreach ($b->childNodes as $node) {             // 2
        if ($node->nodeType === XML_ELEMENT_NODE) { // 3
            echo $node->nodeValue, PHP_EOL;         // 4
        }
    }
}
  1. 遍历<b>元素
  2. 遍历每个<b>元素的子节点
  3. 检查当前节点是DOM element而不是text节点
  4. 打印子值或执行您需要的任何操作
  5. <强>输出:

    Im a child of b-1
    Im a child of b-1