我有以下xml结构
<description>
<category id="HBLMENEURSPALGA" order="83500">Spa. Handball Liga Asobal
</category>
AMAYA Sport San Antonio - C.BM.Torrevieja
</description>
使用以下代码
温泉。手球Liga Asobal AMAYA运动 圣安东尼奥 - C.BM.Torrevieja
但我想要这个:
AMAYA Sport San Antonio - C.BM.Torrevieja
$teams = $game->getElementsByTagName("description");
foreach ($teams as $team)
{
$info = $team->nodeValue;
}
答案 0 :(得分:2)
您需要指向正确的节点。您指向的此节点实际上是整个description
节点,而您需要指向包含所需字符串的(隐式)文本节点。
解决方案(如果字符串始终排在最后):
$teams = $xml->getElementsByTagName("description");
foreach ($teams as $team)
{
$info = $team->lastChild->nodeValue;
echo "info: $info\n";
}
答案 1 :(得分:0)
您需要循环childNodes
的{{1}}并检查$team
是否
nodeType == XML_TEXT_NODE
这是beacuse文本也是一个节点(因此需要循环childNodes ),其foreach ($teams as $team)
{
foreach($team->childNodes as $child)
{
if ($child->nodeType == XML_TEXT_NODE && trim($child->nodeValue) != '')
{
$info = $child->nodeValue;
break;
}
}
}
值为nodeType
(3)
我也在检查XML_TEXT_NODE
是非空的,因为节点之间的空白也可以被视为textNodes ..