2011-12-13 33 views
0

嗨我有一个关于PHP中的asXML函数的问题。假设我有一个名为xml_file并具有以下内容的xml文件。asXML销毁xml文件?

<employees> 
    <employee> 
    <name>Mark</name> 
    <age>27</age> 
    <salary></salary> 
    </employee> 
    <employee> 
    <name>Jack</name> 
    <age>25</age> 
    <salary>$4000</salary> 
    </employee> 
</employees> 

我写了这段代码,用于在我的xml文件中更改一个变量。

$xml = new SimpleXMLElement(file_get_contents($xml_file)); 
$xml->employee[1]->name = 'David'; 
$xml->asXML($xml_file) or die ("asXML failed.\n"); 

而我的问题是,由于第一份工资标签是空asXML功能破坏这个标签,它输出这样的

<employees> 
    <employee> 
    <name>Mark</name> 
    <age>27</age> 
    <salary/> 
    </employee> 
    <employee> 
    <name>David</name> 
    <age>25</age> 
    <salary>$4000</salary> 
    </employee> 
</employees> 

如何避免呢?感谢您的任何适当的解决办法...

回答

3

在XML: -

<salary></salary> = <salary/> <-- both are empty tag 
+0

喔,我不知道。谢谢...... – ibrahim

+3

为了扩大这一点:两者完全等同。如果你的软件接受''而不是'',那么它就会被破坏,你不应该用它来解析XML **。 –