用php进行xml编辑

用php进行xml编辑,php,xml,xml-parsing,Php,Xml,Xml Parsing,我在用php编辑xml文件时遇到问题。这是我的xml,我使用DOM创建它: <?xml version="1.0" encoding="UTF-8"?> <root> <node1/> <node2> <child id="child1"> <subchild1/> <subchild2/> </child> <child id="chil

我在用php编辑xml文件时遇到问题。这是我的xml,我使用DOM创建它:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <node1/>
  <node2>
    <child id="child1">
      <subchild1/>
      <subchild2/>
    </child>
    <child id="child2">
      <subchild1/>
      <subchild2/>
    </child>
    <child id="child3">
      <subchild1/>
      <subchild2/>
    </child>
  </node2>
</root>
它起作用了,但是它删除了subchild1和subchild2,所以现在我有了这个,你可以在那里看到的空间:

<?xml version="1.0" encoding="UTF-8"?>
    <root>
      <node1/>
      <node2>
        <child id="child1">


        text</child>
        <child id="child2">
          <subchild1/>
          <subchild2/>
        </child>
        <child id="child3">
          <subchild1/>
          <subchild2/>
        </child>
      </node2>
    </root>

文本

为什么要删除子类???

首先,使用XPath通过id访问元素是过分的,因为您可以使用
DOMDocument::getElementById
(id是唯一的,所以不需要描述任何路径)。您想在subchilds元素之前还是之后插入文本?@CasimiretHippolyte我试图使用它,但无法使其工作,因为它返回可能重复的@CasimiretHippolyte抱歉,我刚才看到了您的编辑,我已经解决了,我忘了在xpath查询中添加/subchild1,现在它工作了!
<?xml version="1.0" encoding="UTF-8"?>
    <root>
      <node1/>
      <node2>
        <child id="child1">


        text</child>
        <child id="child2">
          <subchild1/>
          <subchild2/>
        </child>
        <child id="child3">
          <subchild1/>
          <subchild2/>
        </child>
      </node2>
    </root>