2015-11-04 93 views
0

简单的示例XML文件是PHP simplexml的设置属性

<body id="1" doi="100000"> 
</body> 

PHP

$feed = file_get_contents('/../files/schema.xml'); 
    $datasetxml = simplexml_load_string($feed); 
    $datasetxml->body['id']=2; 
    $datasetxml->body['doi']="200000"; 
    echo $datasetxml->asXML(); 

我想改变它为ID = 2,DOI = 200000但复位值后的结果是错误的,只能在网页上看到源码?

<?xml version="1.0"?> 
<body id="1" doi="100000"> 

<body id="2" doi="200000"/></body> 

回答

1

因为它是你想改变根元素,尝试直接在它的工作:

$datasetxml = simplexml_load_string('<body id="1" doi="100000"> 
</body>'); 
$datasetxml['id']=2; 
$datasetxml['doi']="200000"; 
echo $datasetxml->asXML(); 

因为$datasetxml已经是它的属性,你想改变的元素。

0
$feed = file_get_contents('/../files/schema.xml'); 
$datasetxml = simplexml_load_string($feed); 
$datasetxml->body[0]['id']=2; 
$datasetxml->body[0]['doi']="200000"; 
echo $datasetxml->asXML(); 
+0

谢谢,我之前尝试过这种方式,但仍然错误 – AntiGMO

+0

如果向xml中添加根实体,则此方法有效。看来你不能修改root属性。 –