亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php loadXML 字符串

php loadXML 字符串

PHP
慕工程0101907 2022-07-09 09:26:30
我有一個 xsd 字符串,我需要獲取標簽狀態和標簽 itens/seloRecebimento 中的內容,并將其像表格一樣放置。我需要的:$status = 0; // or 1itens/seloRecebimento 上的標簽內容如下:4 AAA034593 A1B24 AAA034594 A1B2下面是 xsd 字符串:$string = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>  <ns4:receberSelosResponse xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" xmlns:ns3="http://www.tjce.jus.br/selodigital/schemas" xmlns:ns4="http://service.recebimento.selodigital.tjce.jus.br/">     <return>        <cabecalho>           <versao>1.12</versao>           <dataHora>2019-12-30T08:17:17.425-03:00</dataHora>           <ambiente>2</ambiente>           <serventia>              <codigoServentia>000309</codigoServentia>           </serventia>        </cabecalho>        <itens>           <itemSolicitacao>              <sequencial>1</sequencial>              <status>                 <codigo>MSG037</codigo>                 <status>0</status>                 <mensagem>Item da solicita??o já foi entregue para serventia.</mensagem>              </status>              <seloRecebimento>                 <codigoSelo>                    <codigo>4</codigo>                 </codigoSelo>                 <numeroSerie>AAA034593</numeroSerie>                 <validador>A1B2</validador>              </seloRecebimento>              <seloRecebimento>                 <codigoSelo>                    <codigo>4</codigo>                 </codigoSelo>                 <numeroSerie>AAA034594</numeroSerie>                 <validador>A1B2</validador>              </seloRecebimento>                            </itemSolicitacao>        </itens>     </return>  </ns4:receberSelosResponse></soap:Body></soap:Envelope>';
查看完整描述

1 回答

?
MMTTMM

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);


查看完整回答
反對 回復 2022-07-09
  • 1 回答
  • 0 關注
  • 118 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號