用PHP提取XML元素
我想知道是否有人可以帮助我。用PHP提取XML元素
我有以下xml文件,我需要从两个文件属性中提取值,更精确地说,'userid'和'locationid'代表每个'文件名'。最终,这些值将用于确定用户在页面加载时将呈现的文件夹和文件。
<?xml version="1.0" encoding="utf-8" ?>
- <files>
<file name="Test 1/Test Pic 2.jpg" source="Test_Pic_2.jpg" size="728573" originalname="Test Pic 2.jpg" thumbnail="Test_Pic_2.jpg" userid="1" locationid="1" description="No description provided" folder="Test_1" />
<file name="Test 1/stags-snow_1544533c.jpg" source="stags-snow_1544533c.jpg" size="21341" originalname="stags-snow_1544533c.jpg" thumbnail="stags-snow_1544533c.jpg" userid="1" locationid="1" description="Deer head." folder="Test_1" />
</files>
我必须承认,不是不知道如何得到这个信息了很多,但经过一番搜索,我发现一个在线教程,我已经适应和下方增加了。
<?php
if(! $xml = simplexml_load_file('UploadedFiles/files.xml'))
{
echo 'unable to load XML file';
}
else
{
foreach($xml as $files)
{
echo 'userid: '.$file_name->userid.'<br />';
echo 'locationid: '.$file_name->locationid.'<br />';
}
}
?>
我遇到的问题是,当我运行这个,我只是得到下面的结果:
用户名: locationid: 用户ID: locationid: 用户ID: locationid:
行数对应的记录数,但我想获得的也是该字段的值。
我只是想知道是否有人可以看看这个,让我知道我要去哪里错了。
非常感谢
我想你需要这样的事情。 (在http://php.net/manual/en/simplexmlelement.attributes.php发现了一个例子)
<?php
$string = <<<XML
<a>
<foo name="one" game="lonely">1</foo>
</a>
XML;
$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
echo $a,'="',$b,"\"\n";
}
?>
希望这有助于如果没有请回来后。
$file_name
在脚本假设这是你拥有了整个PHP脚本是不明确的。
您可能需要使用$files->userid
和$files->locationid
嗨,非常感谢。不幸的是,我已经尝试了这一点,并得到了相同的结果。亲切的问候 – IRHM 2012-03-14 15:06:52
四个基本的东西要记住的SimpleXML:
- 与性能的元素访问:
$elem['attribname']
- 文本内容与铸造:
(string) $elem
- 的XPath与
$elem->xpath('')
与下标
- 属性的访问
$elem->childname
当您使用['userid']
的下标时,您正在使用元素访问(->userid
),因为userid是属性。
非常感谢您花时间帮助我解决这个问题。我在一定程度上理解了这个例子。但考虑到我需要更深入的实现,我可能需要添加一个新帖子,因为我认为我需要做的比我原先想象的要复杂得多。亲切的问候 – IRHM 2012-03-14 15:42:35
没问题。如果您有问题,请随时给我发电子邮件。 – 2012-03-14 16:16:08
你真好。非常感谢。 – IRHM 2012-03-14 18:31:03