如何将XML解析为php?
如何将其转换为php输出如何将XML解析为php?,php,codeigniter,xml-parsing,Php,Codeigniter,Xml Parsing,如何将其转换为php输出 <?xml version="1.0" encoding="iso-8859-1"?> <employee> <name>Mark</name> <age>27</age> <salary>$5000</salary> </employee> <
<?xml version="1.0" encoding="iso-8859-1"?>
<employee>
<name>Mark</name>
<age>27</age>
<salary>$5000</salary>
</employee>
<employee>
<name>Jack</name>
<age>25</age>
<salary>$4000</salary>
</employee>
<employee>
<name>nav</name>
<age>25</age>
<salary>$4000</salary>
</employee>
做记号
27
$5000
杰克
25
$4000
导航
25
$4000
我不太明白你的问题,但是如果你想用php解析xml,你可以使用xml扩展:
然后,您将能够根据自己的喜好打印数据您可以看到以下讨论:您可以在那里找到答案: 如果您正在寻找CodeIgniter中的解决方案。这两个链接可能会有所帮助
认为您的XML缺少根条目,因此解析将继续。但是,撇开这个问题不谈,可以查找simplexml\u load\u文件和simplexml\u load\u字符串。这些是以PHP风格的结构访问XML的最简单方法 在您的XML示例中,我插入了一个通用的“records”条目。例如:
$t = <<< EOF
<?xml version="1.0" encoding="iso-8859-1"?>
<records>
<employee>
<name>Mark</name>
<age>27</age>
<salary>$5000</salary>
</employee>
<employee>
<name>Jack</name>
<age>25</age>
<salary>$4000</salary>
</employee>
<employee>
<name>nav</name>
<age>25</age>
<salary>$4000</salary>
</employee>
</records>
EOF;
$x = @simplexml_load_string( $t );
print_r( $x );
@pp19dd表示缺少根节点,当前xml处于有效状态
<?xml version="1.0" encoding="iso-8859-1"?>
<document>
<employee>
<name>Mark</name>
<age>27</age>
<salary>$5000</salary>
</employee>
<employee>
<name>Jack</name>
<age>25</age>
<salary>$4000</salary>
</employee>
<employee>
<name>nav</name>
<age>25</age>
<salary>$4000</salary>
</employee>
</document>
输出到视图(列表/表格)
getElementsByTagName(“员工”);
foreach($employees作为$employees)
{
$names=$employee->getElementsByTagName(“名称”);
$name=$name->item(0)->nodeValue;
$ages=$employee->getElementsByTagName(“年龄”);
$age=$ages->item(0)->nodeValue;
$salaries=$employee->getElementsByTagName(“salary”);
$salary=$salaries->item(0)->nodeValue;
回显“$name-$age-$salary\n
”;
}
?>
//这辆车是这样开的
马克-27-$5000
杰克-25-4000美元
nav-25-$4000表示我是如何在php中获得xml文件输出的?您可以使用DomDocument创建和解析xml标记-27-$5000 Jack-25-$4000 nav-25-$4000,我需要获得类似此GetElementsByTagname(“员工”)的输出;foreach($employees as$employee){$names=$employee->getElementsByTagName(“名称”);$name=$names->item(0)->nodeValue;$ages=$employee->getElementsByTagName(“工资”);$salary=$salary->getElementsByTagName->item(0)->nodeValue;echo“$name-$age-$salary\n
”;}?>Mark-27-$5000 Jack-25-$4000 nav-25-$4000我需要这样的输出它可以工作,但我需要这样的输出;Mark-27-$5000 Jack-25-$4000 nav-25-$4000 nav-4000你只需要用你的格式回复:
foreach($x[雇员]作为$employee){echo$employee['name'.-'.$employee['age']'.-'.$employe['salary'].';}
如何为此xml的输出提供CSS???;getElementsByTagName(“员工”);foreach($employees as$employee){$names=$employee->getElementsByTagName(“名称”);$name=$names->item(0)->nodeValue;$ages=$employee->getElementsByTagName(“年龄”);$age=$ages->item(0)->nodeValue;$salaries=$employee->getElementsByTagName(“salary”);$salary=$salary->item(0)->nodeValue;echo“$name-$age-$salary\n”;}?>getElementsByTagName(“employee”);foreach($employees as$employee){$names=$employee->getElementsByTagName(“name”);$name=$names->item(0)->nodeValue;$ages=$employee->getElementsByTagName(“年龄”);$age=$ages->item(0)->nodeValue;$salaries=$employee->getElementsByTagName(“工资”);$salary=$salary->item(0)->nodeValue;echo“$name-$age-$salary\n
”;}>
<?xml version="1.0" encoding="iso-8859-1"?>
<document>
<employee>
<name>Mark</name>
<age>27</age>
<salary>$5000</salary>
</employee>
<employee>
<name>Jack</name>
<age>25</age>
<salary>$4000</salary>
</employee>
<employee>
<name>nav</name>
<age>25</age>
<salary>$4000</salary>
</employee>
</document>
$dom = new DOMDocument();
$dom->load('data.xml');
$employees = $dom->getElementsByTagName('employee');
foreach($employees as $employee)
{
$names = $employee->getElementsByTagName( "name" );
$name = $names->item(0)->nodeValue;
$ages = $employee->getElementsByTagName( "age" );
$age = $ages->item(0)->nodeValue;
$salaries = $employee->getElementsByTagName( "salary" );
$salary = $salaries->item(0)->nodeValue;
$tmp[] = array(
'name' => $name,
'age' => $age,
'salary' => $salary
);
continue;
}
<table>
<tbody>
<?php foreach($tmp as $staff):?>
<tr>
<td><?php echo $staff['name'];?></td>
<td><?php echo $staff['age'];?></td>
<td style="color:red;"><?php echo $staff['salary'];?></td>
</tr>
<?php endforeach;?>
</tbody>
</table>
<?php
$doc = new DOMDocument();
$doc->load( 'test1.xml' );//xml file loading here
$employees = $doc->getElementsByTagName( "employee" );
foreach( $employees as $employee )
{
$names = $employee->getElementsByTagName( "name" );
$name = $names->item(0)->nodeValue;
$ages= $employee->getElementsByTagName( "age" );
$age= $ages->item(0)->nodeValue;
$salaries = $employee->getElementsByTagName( "salary" );
$salary = $salaries->item(0)->nodeValue;
echo "<b>$name - $age - $salary\n</b><br>";
}
?>