asXML破坏xml文件?

时间:2011-12-13 14:59:40

标签: php xml simplexml

嗨我在php中有关于asXML函数的问题。假设我有一个名为xml_file且位于内容之下的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");

我的问题是,因为第一个工资标签是空的,因为XML函数会破坏这个标签并且它会像那样输出

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

我该怎样防止这种情况?感谢任何适当的解决方案...

1 个答案:

答案 0 :(得分:3)

在XML中: -

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