我想用php创建这种类型的xml给我一些建议 谁能纠正这个我无法创建层次结构的PHP代码。 我正在从html表单(文本框)
中获取输入输出是: -
project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<model>4.0.0</model>
<licenses>
<license>
<name>TODO</name>
<url>TODO</url>
</license>
</licenses>
</project>
<!-- end snippet -->
php代码: -
$xmlns = 'http://maven.apache.org/POM/4.0';
$document = new DOMDocument();
$project = $document
->appendChild($document->createElementNS($xmlns, 'project'));
$project->setAttributeNS(
'http://www.w3.org/2001/XMLSchema-instance',
'xsi:schemaLocation',
'http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'
);
$project
->appendChild($document->createElementNS($xmlns, 'url'))
->appendChild($document->createTextNode($text5));
$project
->appendChild($document->createElementNS($xmlns, 'licenses'))
->appendChild($document->createElementNS($xmlns, 'license'))
->appendChild($document->createElementNS($xmlns, 'url'))
->appendChild($document->createTextNode($text6));
->appendChild($document->createElementNS($xmlns, 'name'))
->appendChild($document->createTextNode($text7));
$document->save("d.xml");
?>
答案 0 :(得分:0)
PHP支持DOM 3 Api。您可以创建节点并将它们附加到文档中。
您问题中的XML使用命名空间,因此您必须为此命名空间创建节点(使用方法的* NS变体)。这会根据需要添加命名空间定义。
$xmlns = 'http://maven.apache.org/POM/4.0';
$document = new DOMDocument();
$project = $document
->appendChild($document->createElementNS($xmlns, 'project'));
$project->setAttributeNS(
'http://www.w3.org/2001/XMLSchema-instance',
'xsi:schemaLocation',
'http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'
);
$project
->appendChild($document->createElementNS($xmlns, 'model'))
->appendChild($document->createTextNode('4.0.0'));
$document->formatOutput = TRUE;
echo $document->saveXml();