使用PHP读取XML的问题

时间:2014-10-29 15:43:21

标签: php xml

我正在尝试使用'simplexml_load_file'读取一个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>

2 个答案:

答案 0 :(得分:0)

在XML文件中,您必须转义特殊字符。否则您的XML语法就会被破坏。

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

其他人认为获取XML的请求可能不是UTF-8。

答案 1 :(得分:0)

这是一个重复的问题。

在这里阅读答案:

parse a SOAP XML response with Namespaces using PHP

Parse soap response using PHP