3

私はこのようなXMLファイルを持っています

<table id="0">
</table>
<table id="1">
</table>
<table id="2">
</table>

ID x のテーブルが存在するかどうかを確認したい

私はこれを試してきましたが、うまくいきません。

$file=fopen("config.xml","a+");
while (!feof($file))
  {
      if(fgets($file). "<br>" === '<table id="0">'){
        echo fgets($file). "<br>";
      }
  }
fclose($file);
4

3 に答える 3

4

これを実現する最も簡単な方法は、PHP Simple HTML DOMクラスを使用することです。

$html = file_get_html('file.xml');
$ret = $html->find('div[id=foo]'); 

[編集] 動作しないコードについては... 貼り付けた xml には
文字がないため、この文字列比較は false を返すことに注意してください。新しい行を考慮したい場合は、むしろ書くべき\nです...しかし、非常に厳密にフォーマットされた入力ファイルを取得する必要がないため、上記のソリューションの方が優れています。

于 2013-10-22T17:41:57.420 に答える
2

XPath を使用して ID で検索するDOMDocument クラスを使用できますgetElementById()。メソッドはありますが、問題があります。

// Setup sample data

$html =<<<EOT
<table id="0">
</table>
<table id="1">
</table>
<table id="2">
</table>
EOT;

$id = 3;

// Parse html
$doc = new DOMDocument();
$doc->loadHTML($html);

// Alternatively you can load from a file
// $doc->loadHTMLFile($filename);

// Find the ID
$xpath = new DOMXPath($doc);
$table = $xpath->query("//*[@id='" . $id . "']")->item(0);

echo "Found: " . ($table ? 'yes' : 'no');
于 2013-10-22T17:52:50.680 に答える