DOMdocument搜索标签

时间:2012-12-14 08:41:09

标签: php xml 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,如果那里没有这个标记,那么在同一个xml文件中查找anothertag ..

我怎么能这样做,谢谢你提前帮助

1 个答案:

答案 0 :(得分: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');
}