【发布时间】:2016-01-18 09:40:17
【问题描述】:
我在使用 php 脚本加载 XML 提要时遇到问题。我在我的网站上复制提要并加载它,这样我就知道我在调试什么。文件中的每个条目都有一个名称空间(有几个不同的。)
这是我第一次弄乱命名空间,我什至无法加载文件。当我尝试时
$xml = new SimpleXMLElement($result) or die("Error: Cannot create object\n<hr>".$result);
它会触发错误。这适用于十几个没有名称空间的不同提要(或者至少我没有注意到任何名称空间)。我已经尝试了各种方法来获取有关为什么它无法创建 simpleXMLElement 的更多信息,并且到目前为止它们都没有返回问题。
我已经使用 4 个不同的在线验证器验证了 xml 提要。 3 似乎使用 javascript 并说提要是完美的,第 4 位 http://www.xmlvalidation.com/ 将代码上传到其站点并返回说他们的站点有错误。(使用其他 xml,他们的验证器工作得很好。)
我认为我已将问题缩小到名称空间的问题。如果我删除顶部的名称空间内容,我可以使用上面的代码加载 xml 文件,然后我会得到一堆名称空间错误。您可以在下面看到命名空间信息。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:timeSeriesResponse xsi:schemaLocation="http://www.cuahsi.org/waterML/1.1/ http://waterservices.usgs.gov/WaterML-1.1.xsd" xmlns:ns1="http://www.cuahsi.org/waterML/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:queryInfo xmlns:ns2="http://www.cuahsi.org/waterML/1.1/">
链接到示例 xml 页面 http://waterservices.usgs.gov/nwis/iv/?format=waterml,1.1&sites=06306300¶meterCd=00060,00065
【问题讨论】:
-
您到底想做什么?只创建 SimpleXmlObject?
-
我想处理 xml 提要,检索各种有用的数据,然后用它在我的网站上创建一个页面。使用来自其他来源的提要,我创建了一个 SimpleXmlObject,然后使用 xpath() 来查找我要查找的内容。如果我有另一种更好的游戏方式。
-
看我的回答。希望它能解决您的问题