2012-12-14 203 views
0

我試圖做到這一點:DOM文檔搜索標籤

我有幾千個XML文件,我讀他們,我期待與特定標記的XML內特殊的文字,但都具有這些標記我需要的文字是不同的。我的所作所爲到現在爲止是這樣的:

$xml_filename = "xml/".$anzeigen_id.".xml"; 
    $dom = new DOMDocument(); 
    $dom->load($xml_filename); 
    $value = $dom->getElementsByTagName('FormattedPositionDescription'); 
    foreach($value as $v){ 
     $text = $v->getElementsByTagName('Value'); 
     foreach($text as $t){ 
      $anzeige_txt = $t->nodeValue; 
      $anzeige_txt = utf8_decode($anzeige_txt); 
      $anzeige_txt = mysql_real_escape_string($anzeige_txt); 
      echo $anzeige_txt; 
      $sql = "INSERT INTO joinvision_anzeige(`firmen_id`,`anzeige_id`,`anzeige_txt`) VALUES ('$firma_id','$anzeigen_id','$anzeige_txt')"; 
      $sql_inserted = mysql_query($sql); 
      if($sql_inserted){ 
       echo "'$anzeigen_id' from $xml_filename inserted<br />"; 
      }else{ 
       echo mysql_errno() . ": " . mysql_error() . "\n"; 
      } 
     } 
    } 

現在我需要做的是這樣的:

尋找在XML FormattedPositionDescription,如果沒有這個標記在那裏,然後尋找anothertag在相同的XML文件..

我怎麼能做到這一點,提前感謝您的幫助

回答

2

只要勾選DOMNodeListlength屬性:

$value = $dom->getElementsByTagName('FormattedPositionDescription'); 

if($value->length > 0) 
{ 
    // found some FormattedPositionDescription 
} 
else 
{ 
    // didn't find any FormattedPositionDescription, so look for anothertag 
    $list = $dom->getElementsByTagName('anothertag'); 
} 
+0

完美的MrCode,我很難測試返回值。 – doniyor

+0

工作!非常感謝 – doniyor

+0

沒問題.. :) – MrCode