php dom 获取嵌套中的节点值
php dom get nodevalue in nest
我有一棵这样的 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;
这里把节点值作为一个完整的字符串输出,如何单独获取节点值?
您需要这样遍历每个 <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
}
}
}
- 遍历
<b>
个元素
- 遍历每个
<b>
元素的子节点
- 检查当前节点是 DOM
element
而不是 text
节点
- 打印子值或做任何你需要的
输出:
Im a child of b-1
Im a child of b-1
我有一棵这样的 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;
这里把节点值作为一个完整的字符串输出,如何单独获取节点值?
您需要这样遍历每个 <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
}
}
}
- 遍历
<b>
个元素 - 遍历每个
<b>
元素的子节点 - 检查当前节点是 DOM
element
而不是text
节点 - 打印子值或做任何你需要的
输出:
Im a child of b-1
Im a child of b-1