2012-12-14 171 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