各位好,我有一个 test.xml文件,内容如下<?xml version="1.0" encoding="UTF-8"?>
<main version='2'>
<item IsFolder="1" name="folder1" addtime="2010-02-05 10:12:48"> //目标1
<item IsFolder="0" name="e1" addtime="2010-02-05 10:11:58">content1</item>
<item IsFolder="0" name="e2" addtime="2010-08-18 08:59:41">content2</item>
<item IsFolder="0" name="e3" addtime="2010-09-27 00:24:25">content3</item>
</item>
<item IsFolder="1" name="folder2" addtime="2010-03-21 17:44:19"> //目标2
<item IsFolder="0" name="e1" addtime="2010-03-21 17:44:19">content1</item>
<item IsFolder="0" name="e2" addtime="2010-03-21 17:44:19">content2</item>
<item IsFolder="0" name="e3" addtime="2010-03-21 17:44:19">content3</item>
<item IsFolder="0" name="e4" addtime="2010-03-21 17:44:19">content4</item>
<item IsFolder="0" name="e5" addtime="2010-03-21 17:44:19">content5</item>
<item IsFolder="0" name="e6" addtime="2010-03-21 17:44:19">content6</item>
<item IsFolder="0" name="e7" addtime="2010-03-31 08:42:57">content7</item>
</item>
<item IsFolder="0" name="f1" addtime="2010-03-21 17:44:19">contentf1</item> //目标3
<item IsFolder="0" name="f2" addtime="2010-03-31 08:42:57">contentf2</item> //目标4
</main>
通过以下语句可以获得相关信息: $doc->load('test.xml');
$main = $doc->getElementsByTagName("main")->item(0);
$itemiter = $main->getElementsByTagName("item");但是,$itemiter嵌套获取了所有的item元素,有没有什么方法可以至获取一层数据的,及不要嵌套。即只需要“目标1,2,3,4”这四个元素的就够了。
望赐教。谢谢。
<main version='2'>
<item IsFolder="1" name="folder1" addtime="2010-02-05 10:12:48"> //目标1
<item IsFolder="0" name="e1" addtime="2010-02-05 10:11:58">content1</item>
<item IsFolder="0" name="e2" addtime="2010-08-18 08:59:41">content2</item>
<item IsFolder="0" name="e3" addtime="2010-09-27 00:24:25">content3</item>
</item>
<item IsFolder="1" name="folder2" addtime="2010-03-21 17:44:19"> //目标2
<item IsFolder="0" name="e1" addtime="2010-03-21 17:44:19">content1</item>
<item IsFolder="0" name="e2" addtime="2010-03-21 17:44:19">content2</item>
<item IsFolder="0" name="e3" addtime="2010-03-21 17:44:19">content3</item>
<item IsFolder="0" name="e4" addtime="2010-03-21 17:44:19">content4</item>
<item IsFolder="0" name="e5" addtime="2010-03-21 17:44:19">content5</item>
<item IsFolder="0" name="e6" addtime="2010-03-21 17:44:19">content6</item>
<item IsFolder="0" name="e7" addtime="2010-03-31 08:42:57">content7</item>
</item>
<item IsFolder="0" name="f1" addtime="2010-03-21 17:44:19">contentf1</item> //目标3
<item IsFolder="0" name="f2" addtime="2010-03-31 08:42:57">contentf2</item> //目标4
</main>
通过以下语句可以获得相关信息: $doc->load('test.xml');
$main = $doc->getElementsByTagName("main")->item(0);
$itemiter = $main->getElementsByTagName("item");但是,$itemiter嵌套获取了所有的item元素,有没有什么方法可以至获取一层数据的,及不要嵌套。即只需要“目标1,2,3,4”这四个元素的就够了。
望赐教。谢谢。
$doc->load('test.xml');
$main = $doc->getElementsByTagName("main");
foreach($main as $ma){
$test=$ma->getElementsByTagName('test')->item(0).nodeValue;
}
$xml = <<<xml
<main version='2'>
<item IsFolder="1" name="folder1" addtime="2010-02-05 10:12:48">
<item IsFolder="0" name="e1" addtime="2010-02-05 10:11:58">content1</item>
<item IsFolder="0" name="e2" addtime="2010-08-18 08:59:41">content2</item>
<item IsFolder="0" name="e3" addtime="2010-09-27 00:24:25">content3</item>
</item>
<item IsFolder="1" name="folder2" addtime="2010-03-21 17:44:19">
<item IsFolder="0" name="e1" addtime="2010-03-21 17:44:19">content1</item>
<item IsFolder="0" name="e2" addtime="2010-03-21 17:44:19">content2</item>
<item IsFolder="0" name="e3" addtime="2010-03-21 17:44:19">content3</item>
<item IsFolder="0" name="e4" addtime="2010-03-21 17:44:19">content4</item>
<item IsFolder="0" name="e5" addtime="2010-03-21 17:44:19">content5</item>
<item IsFolder="0" name="e6" addtime="2010-03-21 17:44:19">content6</item>
<item IsFolder="0" name="e7" addtime="2010-03-31 08:42:57">content7</item>
</item>
<item IsFolder="0" name="f1" addtime="2010-03-21 17:44:19">contentf1</item>
<item IsFolder="0" name="f2" addtime="2010-03-31 08:42:57">contentf2</item>
</main>
xml;
$dom->loadXML($xml);$xpath = new DOMXPath($dom);$items = $xpath->query("//main/item");foreach($items as $item)
{
echo $item->getAttribute("name")."<br/>";
}