1 回答
TA贡献1869条经验 获得超4个赞
目前,您只是在倾倒所有DOMElement内容。此代码使用 XPath 挑选出您想要的位并将它们放入一个数组中。
每个 XPath 从作为上下文使用的当前元素开始,并用于descendant::确保它获取元素内的数据。也使用evaluate()as this 可以返回字符串值...
$domDocument = new DOMDocument();
$domDocument->loadXML($string);
$xp = new DOMXPath($domDocument);
$selos = array();
$selos_r = $domDocument->getElementsByTagName("itens");
foreach($selos_r as $selos_rs){
$status = $xp->evaluate('string(descendant::status/status)', $selos_rs);
foreach($selos_rs->getElementsByTagName("seloRecebimento") as $s) {
$codigo = $xp->evaluate('string(descendant::codigo)', $s);
$numeroSerie = $xp->evaluate('string(descendant::numeroSerie)', $s);
$validador = $xp->evaluate('string(descendant::validador)', $s);
$selos[] = [$status, $codigo, $numeroSerie, $validador];
}
}
print_r($selos);
- 1 回答
- 0 关注
- 156 浏览
添加回答
举报
