有以下两个相同结构的XML,我现在需要将第1个XML下面的xueshengmen节点下面的所有数据添加到第2个XML下面的xueshengmen节点中。你懂的~<?xml version="1.0" encoding="utf-8" ?>
<AllData>
<xueshengmen>
<xuesheng>
  <name>张三</name>
  <yuwen>80</yuwen>
  <shuxue>90</shuxue>
  <yingyu>70</yingyu>
</xuesheng>
<xuesheng>
  <name>李四</name>
  <yuwen>60</yuwen>
  <shuxue>90</shuxue>
  <yingyu>75</yingyu>
</xuesheng>
</xueshengmen>
</AllData>

解决方案 »

  1.   

    一般对xml做工作的时候,我们需要详细的"结构"  (DTD 或 xml schema)比如,xueshengmen是否一个文件只有一个, 是否必须在AllData下面,
    是否一定有该元素,xuesheng是否是xueshengmen的唯一元素, 
    是否有数量上限,是否需要排序,是否不能重复,如何判断重复(同一个name的是否看做重复的)........
      

  2.   

    其实不用考虑那么复杂,就是两个一模一样的XML,将第一个的xueshengmen下面的所有节点追加到第二个XML下面就行了~
      

  3.   

    <?php$xml1 = <<<XML
    <?xml version="1.0" encoding="utf-8" ?>
    <AllData>
    <xueshengmen>
    <xuesheng>
      <name>张三</name>
      <yuwen>80</yuwen>
      <shuxue>90</shuxue>
      <yingyu>70</yingyu>
    </xuesheng>
    <xuesheng>
      <name>李四</name>
      <yuwen>60</yuwen>
      <shuxue>90</shuxue>
      <yingyu>75</yingyu>
    </xuesheng>
    </xueshengmen>
    </AllData>XML;$xml2 = <<<XML
    <?xml version="1.0" encoding="utf-8" ?>
    <AllData>
    <xueshengmen>
    <xuesheng>
      <name>王五</name>
      <yuwen>40</yuwen>
      <shuxue>90</shuxue>
      <yingyu>70</yingyu>
    </xuesheng>
    <xuesheng>
      <name>赵六</name>
      <yuwen>60</yuwen>
      <shuxue>80</shuxue>
      <yingyu>75</yingyu>
    </xuesheng>
    </xueshengmen>
    </AllData>XML;$dom1 = new DOMDocument('1.0', 'utf-8');
    $dom1->loadXML($xml1);$dom2 = new DOMDocument('1.0', 'utf-8');
    $dom2->loadXML($xml2);$xueshengmen1 = $dom1->getElementsByTagName('xueshengmen')->item(0);
    $xueshengmen2 = $dom2->getElementsByTagName('xueshengmen')->item(0);//循环添加
    foreach($xueshengmen1->childNodes as $node) {
    $node = $dom2->importNode($node, true);
    $xueshengmen2->appendChild($node);
    }var_dump($dom2->saveXML());
      

  4.   

    用PHP的XML操作函数先循环读出2个XML的数据部分:
    <xuesheng>
      <name>张三</name>
      <yuwen>80</yuwen>
      <shuxue>90</shuxue>
      <yingyu>70</yingyu>
    </xuesheng>
    然后再用字符串操作组合2个XML数据部分,再用FSO文件操作函数组合成一个XML。思路大概就是这样:!