dtwxmn8741 2013-09-05 20:13
浏览 43
已采纳

SimpleXML仅解析顶级

I've been struggling for a while now. I get a response from a webservice and I get this XML as a response.

I then load it with SimpleXML in php but when I print the array that it created, it only parses the parent and not the children.

  <cfdi:comprobante certificado="MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMjA3MjcxNzAyMDBaFw0xNjA3MjcxNzAyMDBaMIHbMSkwJwYDVQQDEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVTQVJJQUxFUyBTQzEpMCcGA1UEKRMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFMRVMgU0MxKTAnBgNVBAoTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFNDMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBIRUdUNzYxMDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxETAPBgNVBAsTCFVuaWRhZCAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2TTQSPONBOVxpXv9wLYo8jezBrb34i/tLx8jGdtyy27BcesOav2c1NS/Gdv10u9SkWtwdy34uRAVe7H0a3VMRLHAkvp2qMCHaZc4T8k47Jtb9wrOEh/XFS8LgT4y5OQYo6civfXXdlvxWU/gdM/e6I2lg6FGorP8H4GPAJ/qCNwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEATxMecTpMbdhSHo6KVUg4QVF4Op2IBhiMaOrtrXBdJgzGotUFcJgdBCMjtTZXSlq1S4DG1jr8p4NzQlzxsdTxaB8nSKJ4KEMgIT7E62xRUj15jI49qFz7f2uMttZLNThipunsN/NF1XtvESMTDwQFvas/Ugig6qwEfSZc0MDxMpKLEkEePmQwtZD+zXFSMVa6hmOu4M+FzGiRXbj4YJXn9Myjd8xbL/c+9UIcrYoZskxDvMxc6/6M3rNNDY3OFhBK+V/sPMzWWGt8S1yjmtPfXgFs1t65AZ2hcTwTAuHrKwDatJ1ZPfa482ZBROAAX1waz7WwXp0gso7sDCm2/yUVww==" condicionesdepago="Opcional" fecha="2013-09-09T16:02:52" folio="1" formadepago="PAGO HECHO EN UNA SOLA EXHIBICION" lugarexpedicion="Monterrey" metododepago="No Identificado" moneda="MN" nocertificado="20001000000100005867" numctapago="No Identificada" sello="nWlPxq6j7lhoYirja9hIliM1cG2wNJr6LBlbINzK+Q4cdNjRZGbO95K7a3kvwXGLLw3FodiASPY3C08jXFoNnvpCuvKTuhSBsAJ367AvNFvDnxPqlS8m3g4PAeA6dntvQvBaXHDFRgag1OpYmvu/jd0bksFexjDHktWIp84w2nU=" serie="A" subtotal="157.500000" tipodecomprobante="ingreso" total="182.700000" version="3.2" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd">
   <cfdi:emisor nombre="CONCENTRICO SAPI DE CV" rfc="AAA010101AAA">
    <cfdi:domiciliofiscal calle="Lomas del Valle" codigopostal="12345" colonia="Residencial Sta. Barbara" estado="Nuevo Leon" localidad="Localidad" municipio="San Pedro" noexterior="456" nointerior="2A" pais="Mexico" referencia="referencia">
    </cfdi:domiciliofiscal>
    <cfdi:expedidoen calle="Lomas del Valle" codigopostal="12345" colonia="Residencial Sta. Barbara" estado="Nuevo Leon" localidad="Localidad" municipio="San Pedro" noexterior="456" nointerior="2A" pais="Mexico" referencia="referencia">
    </cfdi:expedidoen>
    <cfdi:regimenfiscal regimen="Requerido">
    </cfdi:regimenfiscal>
    <cfdi:regimenfiscal regimen="Requerido">
    </cfdi:regimenfiscal>
   </cfdi:emisor>
   <cfdi:receptor nombre="CONCENTRICO SAPI DE CV" rfc="CON1108174T9">
    <cfdi:domicilio calle="Lomas del Valle" codigopostal="12345" colonia="Residencial Sta. Barbara" estado="Nuevo Leon" localidad="Localidad" noexterior="456" nointerior="2A" pais="Mexico" referencia="referencia">
    </cfdi:domicilio>
   </cfdi:receptor>
   <cfdi:conceptos>
    <cfdi:concepto cantidad="1.000000" descripcion="Renta de Departamento" importe="100.000000" unidad="Renta" valorunitario="100.000000">
    </cfdi:concepto>
    <cfdi:concepto cantidad="1.000000" descripcion="Renta de Departamento" importe="105.000000" unidad="Renta" valorunitario="105.000000">
    </cfdi:concepto>
    <cfdi:concepto cantidad="1.000000" descripcion="Renta de Departamento" importe="110.000000" unidad="Renta" valorunitario="110.000000">
    </cfdi:concepto>
   </cfdi:conceptos>
   <cfdi:impuestos totalimpuestosretenidos="0.000000" totalimpuestostrasladados="25.200000">
    <cfdi:retenciones>
     <cfdi:retencion importe="0.000000" impuesto="IVA">
     </cfdi:retencion>
     <cfdi:retencion importe="0.000000" impuesto="ISR">
     </cfdi:retencion>
    </cfdi:retenciones>
    <cfdi:traslados>
     <cfdi:traslado importe="25.500000" impuesto="IVA" tasa="16">
     </cfdi:traslado>
    </cfdi:traslados>
   </cfdi:impuestos>
   <cfdi:complemento>
    <tfd:timbrefiscaldigital fechatimbrado="2013-09-03T16:27:17" nocertificadosat="20001000000100005867" sellocfd="nWlPxq6j7lhoYirja9hIliM1cG2wNJr6LBlbINzK+Q4cdNjRZGbO95K7a3kvwXGLLw3FodiASPY3C08jXFoNnvpCuvKTuhSBsAJ367AvNFvDnxPqlS8m3g4PAeA6dntvQvBaXHDFRgag1OpYmvu/jd0bksFexjDHktWIp84w2nU=" sellosat="iC/lFA0TABo5q8oad0tLgqdSSi9qdpmazyeYBjaYYUJc62qxiBUOcg7TF03lYYZzACqMmuXXvTRV8YGqoOAp6KvrioEIc5L3FCdkpqb3pxc/ReHUtp8cabKBpRfJ/clmWVXc0blBiZPe+0TtTE/n/aK6HOf4qyl1Z2T4CpfSO0w=" uuid="PRUEBAXX-XXXX-XXXX-XXXX-TIMBREPRUEBA" version="1.0" xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemalocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/TimbreFiscalDigital/TimbreFiscalDigital.xsd">
    </tfd:timbrefiscaldigital>
   </cfdi:complemento>
  </cfdi:comprobante>

There is the XML...when you pass it to php and print_r the result, it looks nothing like the original! Many elements are missing!

  • 写回答

2条回答 默认 最新

  • duancaozen6066 2013-09-05 21:11
    关注

    Example for getting Lomas del Valle.

    var_dump((string)$xml->children('cfdi',true)->emisor->expedidoen->attributes()->calle);
    

    See these pages.
    http://php.net/manual/en/simplexmlelement.children.php
    http://php.net/manual/en/simplexmlelement.attributes.php

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?