【问题标题】:Create Xml by using Php?使用 PHP 创建 Xml?
【发布时间】:2015-05-28 09:05:28
【问题描述】:

我想用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");

?>

【问题讨论】:

  • 先看看XMLWriter
  • @ramobrero:- 我想从 php 创建 xml 文件。我能够创建一个这部分('4.0.0'),但是如何在项目标签内写入信息......例如:- xmlns="htttp: .... 直到... .........xsd>

标签: php xml dom


【解决方案1】:

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();

【讨论】:

  • ThW:- 感谢您的帮助。它正在工作..你能告诉我对我有帮助的主题名称吗..这样我就可以学习这些主题
  • 我链接了 PHP 手册 DOM 页面。 DOM 是一个 W3C 标准,你会发现很多关于它的文档,这里有关于任何语言的实现。如果您在 PHP 中使用 DOM,请阅读有关 XPath (DOMXPath::evaluate()) 的信息。如果遇到内存问题,请查看 XMLReader/XMLWriter API。
  • ThW:- 非常感谢 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多