XML DOM PHP 中的结构
XML DOM structure in PHP
如何在 PHP 中实现以下 XML DOM 结构?
你能帮我解决这个问题吗?非常感谢任何建议和帮助。
编辑
我附上了尝试的代码。它不起作用,我不知道如何像上面附加的那样打破它。
这不是它的工作原理:
$doc->createElement("name:lname");
元素的名称实际上是lname
,name
是命名空间的句柄,您一定在某处定义了它。那么你需要使用 createElementNS() 来代替。
要创建 正确的 XML 文件,您必须将元素声明为 namespaces:
$employees = array();
$employees[] = array('name' => 'Albert', 'age' => 34, 'salary' => 10000, 'lname' => 'Vidula');
$dom = new DOMDocument('1.0', 'utf-8');
$domEmployees = $dom->createElement('employees');
foreach($employees as $employee)
{
$domEmployee = $dom->createElement('employee');
$domEmployee->appendChild($dom->createElementNS('http://www.w3.org/1999/xhtml', 'name:fname', $employee['name']));
$domEmployee->appendChild($dom->createElementNS('http://www.w3.org/1999/xhtml', 'name:lname', $employee['lname']));
$domEmployee->appendChild($dom->createElement('age', $employee['age']));
$domEmployee->appendChild($dom->createElement('salary', $employee['salary']));
$domEmployees->appendChild($domEmployee);
}
$dom->appendChild($domEmployees);
echo $dom->saveXML();
输出:
<?xml version="1.0" encoding="utf-8"?>
<employees xmlns:name="http://www.w3.org/1999/xhtml">
<employee xmlns:name="http://www.w3.org/1999/xhtml">
<name:fname xmlns:name="http://www.w3.org/1999/xhtml">Albert</name:fname>
<name:lname xmlns:name="http://www.w3.org/1999/xhtml">Vidula</name:lname>
<age>34</age>
<salary>10000</salary>
</employee>
</employees>
如何在 PHP 中实现以下 XML DOM 结构?
你能帮我解决这个问题吗?非常感谢任何建议和帮助。
编辑
我附上了尝试的代码。它不起作用,我不知道如何像上面附加的那样打破它。
这不是它的工作原理:
$doc->createElement("name:lname");
元素的名称实际上是lname
,name
是命名空间的句柄,您一定在某处定义了它。那么你需要使用 createElementNS() 来代替。
要创建 正确的 XML 文件,您必须将元素声明为 namespaces:
$employees = array();
$employees[] = array('name' => 'Albert', 'age' => 34, 'salary' => 10000, 'lname' => 'Vidula');
$dom = new DOMDocument('1.0', 'utf-8');
$domEmployees = $dom->createElement('employees');
foreach($employees as $employee)
{
$domEmployee = $dom->createElement('employee');
$domEmployee->appendChild($dom->createElementNS('http://www.w3.org/1999/xhtml', 'name:fname', $employee['name']));
$domEmployee->appendChild($dom->createElementNS('http://www.w3.org/1999/xhtml', 'name:lname', $employee['lname']));
$domEmployee->appendChild($dom->createElement('age', $employee['age']));
$domEmployee->appendChild($dom->createElement('salary', $employee['salary']));
$domEmployees->appendChild($domEmployee);
}
$dom->appendChild($domEmployees);
echo $dom->saveXML();
输出:
<?xml version="1.0" encoding="utf-8"?>
<employees xmlns:name="http://www.w3.org/1999/xhtml">
<employee xmlns:name="http://www.w3.org/1999/xhtml">
<name:fname xmlns:name="http://www.w3.org/1999/xhtml">Albert</name:fname>
<name:lname xmlns:name="http://www.w3.org/1999/xhtml">Vidula</name:lname>
<age>34</age>
<salary>10000</salary>
</employee>
</employees>