2014-10-29 91 views
2

我想使用'simplexml_load_file'讀取anXML文件,它工作正常,除了一個文件具有這些標籤'',''。當我嘗試閱讀這個文件時,它失敗了,就像它是一個空白文件。比我試圖刪除這個字符':',並且它的工作原理...使用PHP讀取XML的問題

有沒有更好的方式來閱讀此,而不刪除':'字符?

這裏的XML

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Header> 
     <nfeCabecMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeAutorizacao"> 
      <cUF>43</cUF> 
      <versaoDados>3.10</versaoDados> 
     </nfeCabecMsg> 
    </soap:Header> 
    <soap:Body> 
     <nfeAutorizacaoLoteResult xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NfeAutorizacao"> 
     <retEnviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10"> 
      <tpAmb>2</tpAmb> 
      <verAplic></verAplic> 
      <cStat>104</cStat> 
      <xMotivo>Lote processado</xMotivo> 
      <cUF>43</cUF>   
      <dhRecbto>2014-10-29T08:49:23-02:00</dhRecbto> 
      <protNFe versao="3.10"> 
       <infProt> 
        <tpAmb>2</tpAmb> 
        <verAplic></verAplic> 
        <chNFe></chNFe> 
        <dhRecbto>2014-10-29T08:49:23-02:00</dhRecbto> 
        <nProt>143140001934763</nProt> 
        <digVal></digVal> 
        <cStat>100</cStat> 
        <xMotivo>Autorizado o uso da NF-e</xMotivo> 
       </infProt> 
      </protNFe> 
     </retEnviNFe> 
     </nfeAutorizacaoLoteResult> 
    </soap:Body> 
</soap:Envelope> 
+0

請格式化代碼和標誌,它的標籤是造成問題。 – 2014-10-29 15:46:35

+0

我需要讀取最後一個標記​​,但我無法通過這些標記打開此XML 2014-10-29 15:51:27

+0

爲什麼不使用SoapClient類? http://php.net/manual/en/soapclient.soapclient – Anthony 2014-10-29 15:58:54

回答

0

在一個XML文件,你必須逃脫特殊字符。否則,你的XML語法被破壞。

http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

其他想也許去取死XML請求不是UTF-8。

+0

但是這個XML不是我自己製作的,我從服務器收到它返回 – 2014-10-29 15:46:49

+0

好吧你如何獲取文件?也許你的編碼不​​正確? – Stony 2014-10-29 15:47:34

+0

這是從服務器返回,我發送我的XML和服務器發送給我這個XML。這是一個金融體系。 – 2014-10-29 15:54:23