使用 PHP 解析 Google Contacts API XML
我有来自 Google Contacts API 的 xml feed,但在读取
$xml = simplexml_load_string($google_contacts);
这会读取除
最好的做法是什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
更新:如果您使用名称空间和 xpath,您可能需要注册它们首先在SimpleXML中。
如果您在访问某个元素时遇到问题,请尝试将其括在
{}
尖括号内,这可能会有所帮助:$xml->{gd:...}
。如果我没记错的话,SimpleXML 对 XML 命名空间没有/有限的支持。 DomDocument 有,所以用它代替。
对于第一次开始:
或者使用 DomDocument 来处理仅在 SimpleXML 中难以完成的部分:
Update: If you're using name-spaces and xpath, you might need to register them first in SimpleXML.
If you have problems to access an element, try to enclose it within
{}
angel brackets, this probably helps:$xml->{gd:...}
.SimpleXML has no/limited support for XML-Namespaces if I remember correctly. DomDocument has, so take it instead.
For a first start:
Or use DomDocument for the part that is difficult to do in SimpleXML only:
为了使其更易于使用,我所做的事情是通过将
alt=json
附加到请求字符串,将 gdata 返回为 json我的完整查询字符串如下所示:
然后它只是常规 json。
something that I did to make it easer to work with is I got the gdata back as json by appending
alt=json
to the request stringMy full query string looks like:
Then it's just regular json.
您可以使用 xml_parse 读取“gd:”标签。它返回数组中的所有结果,因为 xml 字符串不由您共享,因此您需要编写进一步的逻辑来从数组中获取数据
http://www.php.net/manual/en/function.xml-parse.php
You can read "gd:" tags using xml_parse. It return all result in array, as xml string is not shared by you so you need to write further logic to get data from array
http://www.php.net/manual/en/function.xml-parse.php
我遇到了同样的问题,无法访问 节点。 标记中存在冒号“:”,然后将其替换为无“:”,这就是我所做的:
我制定了自己的解决方案,我需要每个条目下的完整联系人信息列表。
我猜这是因为每个
这将使以下 Google Contact xml:
到此 print_r数组的输出:
I had the same problem which could not access to
<gd:
nodes.I make my own solution which I need the fUll list of contacts info under each entry.
I guess this is because of colon ":" in each
<gd:
tag then replace it with no ":" here is what I did:this will make the following Google Contact xml:
to this print_r output of array: