simplexml_load_string()将空的xml元素转换为object而不是string

时间:2017-05-05 20:10:44

标签: php xml simplexml

我很难消耗一个以xml作为响应的api。我使用simplexml_load_string()将xml转换为php对象,然后使用json_encode()转换为json响应。当所有元素都填充如下

<content>
    <row>
        <column>
            <item1>Item 1</item1>
            <item2>Item 2</item2>
        </column>
    </row>
    <row>
        <column>
            <item1>Item 1</item1>
            <item2>Item 2</item2>
        </column>
    </row>
</content>

json响应将如下所示

{
  "content": {
    "row": [
      {
        "column": [
          {
            "item1": "Item 1",
            "item2": "Item 2"
          },
          {
            "item1": "Item 1",
            "item2": "Item 2"
          }
        ]
      },
      {
        "column": [
          {
            "item1": "Item 1",
            "item2": "Item 2"
          },
          {
            "item1": "Item 1",
            "item2": "Item 2"
          }
        ]
      }
    ]
  }
}

但是当有一个空项目时,相应xml的json响应会因我的api而异。

<content>
    <row>
        <column>
            <item1></item1>
            <item2></item2>
        </column>
    </row>
    <row>
        <column>
            <item1>Item 1</item1>
            <item2>Item 2</item2>
        </column>
    </row>
</content>

对于上面的xml json响应将是

{
   "row":[
      {
         "column":[
            {
               "item1":{

               },
               "item2":{

               }
            },
            {
               "item1":"Item 1",
               "item2":"Item 2"
            }
         ]
      },
      {
         "column":[
            {
               "item1":"Item 1",
               "item2":"Item 2"
            },
            {
               "item1":"Item 1",
               "item2":"Item 2"
            }
         ]
      }
   ]
}

与前一个不同。有关如何克服这个问题的任何帮助吗?

0 个答案:

没有答案