我正在尝试用PHP处理一些XML。
我有代码,例如:
<?php
$stream = fopen("xml","r");
?>
其中“xml”包含如下内容:
<name>name1</name>
<key>key1</key>
<name>name2</name>
<key>key2</key>
等
我想用<key>
标签的内容创建一个数组,就像在哪里一样
keys[0] = "key1"
和
keys[1] = "key2"
非常感谢任何帮助,非常感谢:)
解决方案:
$xmlstr = fread($stream,filesize("xml-file"));
$sxe = new SimpleXMLElement($xmlstr);
echo $sxe->getName() . "\n";
foreach ($sxe->children() as $child) {
echo $child->children();
}
答案 0 :(得分:1)
在这种情况下,您应该使用DOM函数。让我们假设一个结构良好的XML文档(xmltest.xml):
<?xml version="1.0" encoding="utf-8"?>
<root>
<name>name1</name>
<key>key1</key>
<name>name2</name>
<key>key2</key>
</root>
此代码将xml文件加载到DOM文档中,并获取标记为key
;
<?php
$dom = new DOMDocument('1.0','utf-8');
$dom->load('xmltest.xml');
$keys = $dom->getElementsByTagName('key');
for ($i = 0; $i < $keys->length; $i++) {
echo $keys->item($i)->nodeValue . "</br>";
}
?>