2015-08-18 38 views
1

我想创建一个具有以下结构的XML:PHP的SimpleXMLElement问题XML节点

<?xml version="1.0" encoding="UTF-8"?> 
<content> 
    <!-- content goes here --> 
</content> 

我最初创建这样的XML节点:

$xml = new SimpleXMLElement('<xml/>'); 
$content = $xml->addChild('content'); 
// add data to content 

但不允许添加属性的XML节点,所以现在我这样做:

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?>' 
         .'<content></content>'); 

出于某种原因,它不会不增加工作的第e内容节点,但无论如何,它的结构都是正确的。

现在,如何将内容节点分配给变量像我上面所做的那样,因此我可以向其中添加数据?

回答

1

在你的情况$ xml变量等于内容节点只需尝试以下操作:

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?>' 
    .'<content></content>'); 
$xml->addAttribute('Attribute', 'value'); 
$xml->addChild('node_name', 'value'); 
echo $xml->asXML(); 

这应该打印

<?xml version="1.0" encoding="UTF-8"?> 
<content Attribute="value"><node_name>value</node_name></content> 
1

E.g.

<?php 
$content = new SimpleXMLElement('<content />'); 
$content['attr']='value'; 

echo $content->asXML(); 

打印

<?xml version="1.0"?> 
<content attr="value"/> 

---编辑:
为了保持编码= UTF-8:

$content = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?> 
<content />'); 
+0

是的,但是当我这样做时,如何将内容节点分配给变量以实际使用它? – user923487

+0

xml版本1.0的默认编码是UTF-8,所以没有必要“保留”它:) – hakre

1

XML文档必须至少有一个元素。这是文件元素。在你的问题这是内容元素。

你可以只是这个最小字符串实例它创建它的的SimpleXMLElement

$xml = new SimpleXMLElement('<content/>'); 

变量$xml则代表该元素。然后,您可以...

  • ...添加属性:$xml['attribute'] = 'value';
  • ...设定内容的文字:$xml[0] = 'text';
  • ...添加子元素:$xml->child = 'value';

这个示例性的阵容然后将创建以下XML(美化,也:online demo):

<?xml version="1.0"?> 
<content attribute="value"> 
    text 
    <child>value</child> 
</content>