修复XML未声明的前缀名称空间错误

时间:2014-05-13 17:42:48

标签: php xml namespaces

以下XML和说明来自Google在https://developers.google.com/google-apps/spreadsheets/上发布的示例。我试图使用确切的示例,但显然XML由于命名空间而格式不正确。我试图纠正,但我太新了。如果有人可以建议如何纠正,我会很感激。

To update the contents of an existing row, first retrieve the row to update, modify it as desired, and then send a PUT request, with the updated row in the message body, to the row's edit URL.

Be sure that the id value in the entry you PUT exactly matches the id of the existing entry. The edit URL is highlighted in the following row entry:



<entry gd:etag='"S0wCTlpIIip7ImA0X0QI"'>
      <id>https://spreadsheets.google.com/feeds/list/key/worksheetId/private/full/rowId</id>
      <updated>2006-11-17T18:23:45.173Z</updated>
      <category scheme="http://schemas.google.com/spreadsheets/2006"
        term="http://schemas.google.com/spreadsheets/2006#list"/>
      <title type="text">Bingley</title>
      <content type="text">Hours: 10, Items: 2, IPM: 0.0033</content>
      <link rel="self" type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/list/key/worksheetId/private/full/rowId"/>
      <link rel="edit" type="application/atom+xml"
        href="https://spreadsheets.google.com/feeds/list/key/worksheetId/private/full/rowId/version"/>
      <gsx:name>Bingley</gsx:name>
      <gsx:hours>20</gsx:hours>
      <gsx:items>4</gsx:items>
      <gsx:ipm>0.0033</gsx:ipm>
    </entry>

错误是:

'gd' is an undeclared prefix.

1 个答案:

答案 0 :(得分:0)

这看起来像是一个更大的XML文档的一部分。更具体地说,它看起来像是来自具有其他命名空间的Atom提要的Atom条目。我假设字符串函数(可能是regex)用于从文档字符串中提取条目。这打破了XML。不仅缺少其他命名空间的命名空间前缀定义,还缺少默认命名空间。通常所有这些定义都是在原子Feed的文档元素上完成的。