Не удается получить значение полей XML

#php #xml

#php #xml

Вопрос:

Привет, у меня есть этот XML-ответ, который я анализирую, и я могу получить доступ к третьему текстовому полю, я его проанализировал, и я даже делаю var_dump($xmlObj->TerminalCommandResponse->Text); , в котором я получаю на экране

 object(SimpleXMLElement)#48 (14) { 
    [0]=> string(4) "BB" 
    [1]=> string(45) " *** BEST QUOTATION ***" 
    [2]=> string(52) "  FOR THIS ITI" 
    [3]=> string(48) " *** BF SEGMENTS 1P/2P ***" 
    ... 
} 
  

Но когда я пытаюсь напрямую получить доступ:

 $XMlText=$xmlObjFourth->TerminalCommandResponse->Text;
var_dump($XMLText[2]); 
  

Он ничего не показывает. Я даже попробовал цикл foreach на случай, если я неправильно использую ключи, но все та же проблема

 <terminal:TerminalRsp xmlns:terminal="terminal_v50_0"  TransactionId="F09006B80A0759BF61F85144F306F735" ResponseTime="527">
    <terminal:TerminalCommandResponse>
        <terminal:Text>BB</terminal:Text>
        <terminal:Text>*** BEST  QUOTATION ***</terminal:Text>
        <terminal:Text>FOR THIS ITI</terminal:Text>
        <terminal:Text>*** BF SEGMENTS 1P/2P ***</terminal:Text>
        <terminal:Text>   PSGR     PSG DES   </terminal:Text>
        <terminal:Text>FQG 1         PY2PC  3640    6201        ADT       </terminal:Text>
        <terminal:Text>    GUARANTEED A                            </terminal:Text>
        <terminal:Text>)>amp;<</terminal:Text>
    </terminal:TerminalCommandResponse>
</terminal:TerminalRsp>
  

Ответ №1:

Возможно, это специальный символ или пробел, который блокирует вас, это интересная проблема, которая, я думаю, поможет для начала

   foreach($XMLText as $k=>$tmp)
    {
        var_dump(preg_replace("/[^a-zA-Z0-9s ] /", "", $tmp));

    }
  

таким образом, вы можете видеть, что находится в каждом поле в массиве XmlText