2011-06-12 166 views
0

這裏是我最好的我可以確定需要做什麼。但即時通訊不知如何才能正常工作。將一個DOM對象的節點附加到另一個DOM

$ xml和$ xmlfile都是DOM對象/ XML。 $ xml是我想要追加到$ mxlfile中的數據的來源。

$ xml作爲dom對象從另一個函數發送到函數。

這就是xml對我來說的樣子。

<?xml version="1.0" encoding="utf-8"?> 
<!-- Automatically generated data from EVE-Central.com --> 
<!-- This is the new API :-) --> 
<evec_api version="2.0" method="marketstat_xml"> 
    <marketstat> 
    <type id="18"> 
     <all> 
     <volume>1934078988.00</volume> 
     <avg>98.31</avg> 
     <max>26721.00</max> 
     <min>0.53</min> 
     <stddev>1339.78</stddev> 
     <median>26.31</median> 
     <percentile>0.00</percentile> 
     </all> 
     <buy> 
     <volume>1894081100.00</volume> 
     <avg>20.77</avg> 
     <max>31.31</max> 
     <min>0.53</min> 
     <stddev>7.25</stddev> 
     <median>26.00</median> 
     <percentile>28.17</percentile> 
     </buy> 
     <sell> 
     <volume>39997888.00</volume> 
     <avg>34.32</avg> 
     <max>26721.00</max> 
     <min>4.01</min> 
     <stddev>2339.28</stddev> 
     <median>29.80</median> 
     <percentile>26.76</percentile> 
     </sell> 
    </type> 
    <type id="ectera"> 
    </type> 
    </marketstat> 
</evec_api> 

而在這裏,我的功能的一部分,我不能工作。

$xml->preserveWhiteSpace = FALSE; 
$xml->formatOutput = TRUE; 
if(is_file($file)){ 
$xmlfile = new DOMDocument; 
$xmlfile->load($file); 
$dst = $xmlfile->getElementsByTagName('marketStat'); 
foreach($xml->getElementsByTagName('type') as $child){ 
$dst->appendChild($xmlfile->importNode($child));} 
$xmlfile->save($file); 
} 

我知道有一些錯誤,但我只是自學XML和DOM,因此幫助將非常感激。

+0

爲什麼不使用'SimpleXML'。這很簡單 – Pwnna 2011-06-12 01:29:09

回答

0
<?php 

if(is_file($file)) 
{ 
    $xmlfile = new DOMDocument; 

    $xml->preserveWhiteSpace = FALSE; 
    $xml->formatOutput = TRUE; 

    $xmlfile->load($file); 

    $dst = $xmlfile->getElementsByTagName('marketStat'); 
    $parentLength = $dst->length; 

    for($i=0; $i< $parentLength ; $i++) 
    { 
     foreach($xmlfile->getElementsByTagName('type') as $child) 
     { 
      $dst->item($i)->appendChild($child); 
     } 
    } 
    $xmlfile->save($file); 
} 

你的代碼中有兩處錯誤

  1. 您創建文檔後,您可以設置DOM解析器選項。

  2. 您不能在DOM對象列表上使用appendChild。您必須逐個將它們添加到個別DOM元素中。

相關問題