PHP在两点之间搜索

时间:2015-05-21 22:46:03

标签: php xml

我正在尝试用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();
}

1 个答案:

答案 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>";
}
?>