为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 XML id 中获取值 - PHP

如何从 XML id 中获取值 - PHP

PHP
慕标琳琳 2022-08-05 10:36:44
如果有人能帮助我解决这个问题,我将不胜感激。我通过de code读取XML文件来获得这个XML:$x = simplexml_load_file($link);$g = $x->attributeGroup;foreach($g->xpath("//PARAMETER") as $attr){    var_dump((string)$attr->attributes()->ID);    var_dump((string)$attr->attributes()->VALUE);    var_dump((string)$attr); // for text value}我需要在ID=sitPag中获取VALUE,但我无法做到。任何人都可以帮我这样做吗?<consulta><PARAMETER><PARAM ID="CodEmp" VALUE="1234"/><PARAM ID="Pedido" VALUE="00010714"/><PARAM ID="Valor" VALUE="351,20"/><PARAM ID="tipPag" VALUE="02"/><PARAM ID="sitPag" VALUE="00"/><PARAM ID="ValorPago" VALUE="000000351,20"/><PARAM ID="dtPag" VALUE="15012020"/><PARAM ID="codAut" VALUE=""/><PARAM ID="numId" VALUE=""/><PARAM ID="compVend" VALUE=""/><PARAM ID="tipCart" VALUE=""/></PARAMETER></consulta>
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

它可能不是最有效的(您必须遍历每个PARAM元素,直到找到所需的元素,这可能是很多),但这将完成工作。


$x = simplexml_load_string($xmlString);


foreach($x->PARAMETER->PARAM as $param){


    if((string)$param->attributes()->ID == "sitPag")

    {

        echo (string)$param->attributes()->VALUE;

        break;

    }

}


查看完整回答
反对 回复 2022-08-05
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

使用 Xpath 表达式获取节点或值。 返回一个 SimpleXMLElement 实例数组。SimpleXMLElement::xpath()


$consulta = new SimpleXMLElement($xml);

$params = $consulta->xpath('PARAMETER/PARAM[@ID="sitPag"]');

$sitPag = isset($params[0]) ? (string)$params[0]['VALUE'] : '';


var_dump($sitPag);

在 DOM 中,您可以使用直接获取属性值:DOMXpath::evaluate()


$document = new DOMDocument();

$document->loadXML($xml);

$xpath = new DOMXpath($document);

$sitPag = $xpath->evaluate('string(/consulta/PARAMETER/PARAM[@ID="sitPag"]/@VALUE)');


var_dump($sitPag);


查看完整回答
反对 回复 2022-08-05
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

在 DOM 中,您可以使用 DOMXpath::evaluate() 直接获取属性值:


$document = new DOMDocument();

$document->loadXML($xml);

$xpath = new DOMXpath($document);

$sitPag = $xpath->evaluate('string(/consulta/PARAMETER/PARAM[@ID="sitPag"]/@VALUE)');


var_dump($sitPag);


$x = simplexml_load_string($xmlString);


foreach($x->PARAMETER->PARAM as $param){


    if((string)$param->attributes()->ID == "sitPag")

    {

        echo (string)$param->attributes()->VALUE;

        break;

    }

}


查看完整回答
反对 回复 2022-08-05
  • 3 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号