PHP从xml文件读取xml属性
我有一个如下所示的XML文件:PHP从xml文件读取xml属性,php,xml,Php,Xml,我有一个如下所示的XML文件: <?xml version="1.0" encoding="utf-8"?> <Barcodes> <Goods> <Good ID="1" Name="cc" TechnicalNumber="DN11060122D" SpecialGood="True" Desc="" /> <Good ID="2" Name="bb" TechnicalNumber="DN1106
<?xml version="1.0" encoding="utf-8"?>
<Barcodes>
<Goods>
<Good ID="1" Name="cc" TechnicalNumber="DN11060122D" SpecialGood="True" Desc="" />
<Good ID="2" Name="bb" TechnicalNumber="DN11068384B" SpecialGood="True" Desc="" />
</Goods>
</Barcodes>
我试图分别读取每个属性,但在输出中看不到任何内容
我的PHP:
<?php
$folder = "C:/wamp/upload/";
$path = $folder . basename( $_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $path))
{
$xml = simplexml_load_file("C:/wamp/upload/joomla.xml")
or die("Error: Cannot create object");
foreach($xml->children() as $Goods)
{
foreach($Goods->children() as $Good => $data)
{
echo $data->ID;
echo $data->Name;
echo $data->TechnicalNumber;
echo "<br />";
}
}
}
else
{
echo "There was an error uploading the file, please try again!";
}
children()作为$Goods)
{
foreach($Goods->children()作为$Good=>$data)
{
echo$data->ID;
echo$data->Name;
echo$数据->技术编号;
回声“
”;
}
}
}
其他的
{
echo“上传文件时出错,请重试!”;
}
提前感谢。您可以通过数组运算符访问属性:
foreach($Goods->children() as $Good => $data){
echo $data['ID'];
echo $data['Name'];
echo $data['TechnicalNumber'];
echo "<br />";
}
foreach($Goods->children()作为$Good=>$data){
echo$data['ID'];
echo$data['Name'];
echo$数据[‘技术编号’];
回声“
”;
}
如果ziollek的回答没有多大意义
(这是完全正确的,但它表达了该对象行为的一些奇怪之处…)
您可以尝试以下方法:
foreach($xml->children() as $Goods ){
foreach($Goods->children() as $Good ){
$GoodAttributes = $Good->attributes();
echo $GoodAttributes['ID'];
echo $GoodAttributes['Name'];
echo $GoodAttributes['TechnicalNumber'];
echo "<br />";
}
}
也就是说,simplexmlement
有一个成员变量,该变量包含作为数组的属性
该类有一个重载的访问器,因此您可以引用这些属性,就像simplexmlement
本身是一个数组一样。另外,还做了类似的事情,使子节点可用,就好像它们是公共成员变量一样
我总是对同样是数组行为的对象感到有点吃惊,我更喜欢使用方法attributes()
这可能只是个人的爱好,我从来没有用simplexml\u load\u file
制作过需要执行的任何东西,因此这种替代技术可能会带来一些我不知道的开销
我只是想让您知道这些选项…您试图访问的是属性,而不是元素本身
foreach($xml->children() as $Goods)
{
foreach($Goods->children() as $data)
{
echo $data->attributes()->ID;
echo $data->attributes()->Name;
echo $data->attributes()->TechnicalNumber;
echo "<br />";
}
}
foreach($xml->children()作为$Goods)
{
foreach($Goods->children()作为$data)
{
echo$data->attributes()->ID;
echo$data->attributes()->Name;
echo$data->attributes()->TechnicalNumber;
回声“
”;
}
}
谢谢你的帮助:)谢谢:)你的解释对我很有帮助:)
foreach($xml->children() as $Goods)
{
foreach($Goods->children() as $data)
{
echo $data->attributes()->ID;
echo $data->attributes()->Name;
echo $data->attributes()->TechnicalNumber;
echo "<br />";
}
}