【问题标题】:Deserializing or parse XML response in Symfony2在 Symfony2 中反序列化或解析 XML 响应
【发布时间】:2015-06-23 13:13:02
【问题描述】:

我正在通过 cURL 调用一个 API 方法,我得到了这个响应:

<?xml version="1.0" encoding="UTF-8"?>
<jobInfo
    xmlns="http://www.force.com/2009/06/asyncapi/dataload">
    <id>75080000002s5siAAA</id>
    <operation>query</operation>
    <object>User</object>
    <createdById>00580000008ReolAAC</createdById>
    <createdDate>2015-06-23T13:03:01.000Z</createdDate>
    <systemModstamp>2015-06-23T13:03:01.000Z</systemModstamp>
    <state>Open</state>
    <concurrencyMode>Parallel</concurrencyMode>
    <contentType>CSV</contentType>
    <numberBatchesQueued>0</numberBatchesQueued>
    <numberBatchesInProgress>0</numberBatchesInProgress>
    <numberBatchesCompleted>0</numberBatchesCompleted>
    <numberBatchesFailed>0</numberBatchesFailed>
    <numberBatchesTotal>0</numberBatchesTotal>
    <numberRecordsProcessed>0</numberRecordsProcessed>
    <numberRetries>0</numberRetries>
    <apiVersion>34.0</apiVersion>
    <numberRecordsFailed>0</numberRecordsFailed>
    <totalProcessingTime>0</totalProcessingTime>
    <apiActiveProcessingTime>0</apiActiveProcessingTime>
    <apexProcessingTime>0</apexProcessingTime>
</jobInfo>

我想以一种简单的方式访问|解析该结果,但我不知道我应该反序列化 XML 还是尝试使用一些 PHP 原生 XML 函数来读取它。那么关于第一个疑问的想法?

如果反序列化 XML 更好,那么我已经阅读了 this post “在 Symfony2 中使用 JMSSerializerBundle 反序列化 XML” 对我来说完全不清楚我是否需​​要一个实体来实现它.还有this other话题 仍然让我感到困惑。对此有何建议?经验?有什么建议吗?

【问题讨论】:

标签: php xml symfony deserialization jmsserializerbundle


【解决方案1】:

这取决于你的意图。如果您想直接将部分或全部 XML 推送到实体/文档对象以保存到数据库中,那么 JMSSerializerBundle 可以非常巧妙地做到这一点,并且绝对是最好的方法。

但是,如果您只想从 xml 中提取一两个字段并在其他业务逻辑中使用它们,那么只需将 xml 加载到 SimpleXML 对象中通常会更简单。

【讨论】:

    【解决方案2】:

    您可以使用任何对象(不仅是实体)将 XML 文件反序列化为。建议反序列化为对象,因为您可能希望以 OOP 方式使用它。

    这是一篇关于 JMS 序列化程序(包)的详细解释的博客,其中包括用户对象中的 XML 反序列化示例:http://johnkary.net/blog/deserializing-xml-with-jms-serializer-bundle/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多