我想创建一个具有以下结构的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>');
由于某些原因,如果没有添加内容节点它就无法工作,但无论如何,它都能使结构正确。
现在,如何将内容节点分配给变量,就像我上面那样,所以我可以向其添加数据?
答案 0 :(得分: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 />');
答案 1 :(得分: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>
答案 2 :(得分: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>