サーバに保存されているファイルから読み込んだSimpleXMLオブジェクトを経由するスクリプトがあります。今、XMLファイルを処理している間に何か問題がある場合は、スクリプトがエラーを報告し、エラーが発生した子の行を報告することをお勧めします。PHP SimpleXML、foreachループ中に子ラインを取得する
XMLの例:さて、私はここで知っておく必要があるものは、への道がある
<?php
$log = 'Error log'.PHP_EOL;
$xml = simplexml_load_file('file.xml');
foreach($xml->'product' as $key->$val) {
if(everything_is($okay)) {
//process product
}
else {
$log .= 'There was an error with the product on line '.$childLine.PHP_EOL;
}
}
file_put_contents('log.txt',$log);
?>
:
<xml>
<product>
<name>Product one</name>
<price>3.50</price>
</product>
<product>
<name>Product two</name>
<price>42.00</price>
</product>
</xml>
私のスクリプトは、このようなXMLファイルを処理foreachループ内の現在の子がXMLファイル内のどの行にあるのかを調べてください。
私はlibxml_get_errors()
がXMLエラーが発生しますが、製品に欠陥があると判断した場合、製品がXMLファイルにどの行が表示されているかを知りたいと思います。
私は子供の$キーを使って、その子供や何かを見つけたところでsimpleXMLを尋ねることを考えていましたが、どうやってそれがわかりません。
誰でも解決策や提案がある場合は、自由に共有してください。
感謝をチェックし、あなたはどのように私のスクリプトの例を提供することができます上記のDOMで動作しますか?私はDOMを使ってXMLを読む方法がわからないからです。 –
@Kristoffer:それはかなりシンプルです。私は私の答えを更新しました。 –
ありがとう、それは動作します。後でスクリプトにDOMを実装します。 –