使用XML解析时,xml资源是您访问的对象吗?
问题描述:
我似乎不太明白xml_parse的工作原理。我正在做的是获取XML文件的内容,创建一个解析器,并将其传递到xml_parse()。之后我不知道该怎么做。我在想,在我的情况下,$ xml是我现在可以迭代的数组。我试图看看我会如何解析我的数据。使用XML解析时,xml资源是您访问的对象吗?
$fp = file_get_contents("memberdata.xml");
echo "pre-create";
$xml = xml_parser_create();
echo "pre-parse";
$status = xml_parse($xml,$fp);
if(!$status){
die("Error parsing data from $fp into $xml");
}
echo "pre XML posting";
echo "<br />".$xml."<br />";
print_r($xml);
xml_parser_free($xml);
我似乎无法弄清楚如何访问这个。
示例XML数据如下:
<currentTime>2012-09-05 03:43:25</currentTime>
<result>
<rowset name="members" key="characterID" columns="characterID,name,startDateTime,baseID,base,title,logonDateTime,logoffDateTime,locationID,location,shipTypeID,shipType,roles,grantableRoles">
<row ..>
</rowset>
</result>
<cachedUntil></cashedUntil>
答
而不是使用基本工具,使用工具包中的一个,SimpleXML的将缓解很多坎坷。这个问题的答案是使用SimpleXML重做的。
$fp = file_get_contents("memberdata.xml");
$eve = new SimpleXMLElement($fp);
$cols = $eve->{'result'}->rowset['columns'];
//I put result in {} because result is a special character in php.
$cols = explode(",",$cols);
foreach ($cols as $c){
echo "".$c."<br />";
}
//output is printed to screen
不值得回答,但我会建议使用两种'SimpleXML'或'DOMDocument'(均内置于PHP)。你会得到更多的支持。在这个问题之前,我从来没有听说过'xml_parser'! –
我在php.net上看到了这些,但我认为那些是我需要安装的东西,而且我正在考虑用基本的东西来做。那我来看看SimpleXML。 – Fallenreaper
他们是PHP的图书馆,但他们应该包括一个香草PHP安装。只有在您执行PHP安装并将其排除在外时,才会排除它们。 –