我对此感到困惑,无法在网上找到答案。我想使用 DOM 来加载 XML。我有一个具有以下方案的 XML:
<type1>
<other>...</other>
<number>bla</number>
<other>...</other>
</type1>
<type1>
<other>...</other>
<number>bla</number>
<other>...</other>
</type1>
...
<type2>
<other>...</other>
<number>bla</number>
<other>...</other>
</type2>
<type2>
<other>...</other>
<number>bla</number>
<other>...</other>
</type2>
type1 和 type2 的数据都出现多次。标签号出现在这两种类型中。当我使用
$searchNode = $xmlHandler->getElementsByTagName("number");
我得到这两种类型的数字。我怎样才能只得到 type1 或 type2 的数字?
更新:根据 Kami 和 Ikku 的建议,我已经为 DOM 解决了这个问题。在工作代码下方:
<?php
$xmlHandler = new DOMDocument();
$xmlHandler->load("xmldocumentname.xml");
$xpath = new DOMXPath($xmlHandler);
$searchNodes = $xpath->query("/type1");
foreach( $searchNodes as $searchNode ) {
$xmlItem = $searchNode->getElementsByTagName("number");
$number = $xmlItem->item(0)->nodeValue;
$xmlItem = $searchNode->getElementsByTagName("other");
$other = $xmlItem->item(0)->nodeValue;
echo "NUMBER=" . $number . "<br>";
echo "OTHER=" . $other . "<br>";
}
?>