使用PHP DOM获取子节点的值
问题描述:
这是我使用的XML示例:
Here is an example XML I use:
<LISTING diffgr:id="LISTING1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<ID>ACCAMAQU0470001P</ID>
<DATECREA>2013-01-28T09:45:21+01:00</DATECREA>
<DATEMAJ>2014-01-09T17:41:25+01:00</DATEMAJ>
...
</LISTING>
...
在PHP代码中,我在这里:
In the PHP code, here I am:
$document_xml = new DOMDocument();
$document_xml->loadXML($retour['any']);
$elements = $document_xml->getElementsByTagName('LISTING');
while ($elements->item($i)) {
$element = $elements->item($i); // On obtient le nœud
$list = $element->childNodes; // On récupère les nœuds avec childNodes
$idtest = $element->getElementsByTagName('DATEMAJ');
$idElem = $element->getElementsByTagName('ID');
foreach($idElem as $idSirtaq){
$idList[] = $idSirtaq->firstChild->nodeValue;
}
foreach ($idtest as $test) {
//HERE
...
}
...
}
我将获取节点"ID"和"DATEMAJ"的值.我知道要使用 $ test-> firstChild-> nodeValue
来获取"DATEMAJ"值,而不是如何获取节点"ID"的值.
I would to get the value of nodes "ID" and "DATEMAJ".
I know to get the "DATEMAJ" value, with $test->firstChild->nodeValue
, but not how to retrieve the value of the node "ID".
答
尝试
$document_xml = new DOMDocument();
$document_xml->loadXML($xml);
$elements = $document_xml->getElementsByTagName('LISTING');
foreach ($elements as $node) {
$idtest = $node->getElementsByTagName('DATEMAJ');
$idElem = $node->getElementsByTagName('ID');
$idList[] = $idElem->item(0)->nodeValue;
}
在此处