PHPでは、 XML_PARSEとFILE_GET_CONTENTSは、それぞれXMLデータを解析し、リモートURLからファイルを取得するために使用される2つの一般的に使用される関数です。今日は、これら2つの機能を組み合わせてリモートXMLファイルを解析する方法について説明します。オンラインXMLファイルからデータを取得して処理するとします。
file_get_contentsは、指定されたURLの内容を読み取るために使用できる非常に便利な機能です。リモートサーバーからXMLファイルを取得する必要がある場合、この機能を直接使用できます。
<?php
// リモート XML 提出 URL
$url = 'http://m66.net/remote-file.xml';
// 使用 file_get_contents 得るリモート文件コンテンツ
$xmlContent = file_get_contents($url);
if ($xmlContent === FALSE) {
die('Error: Unable to fetch XML file');
}
// 取得したものを表示します XML コンテンツ
echo $xmlContent;
?>
このコードは、 m66.netからリモートxmlファイルを取得するためにfile_get_contentsを使用する方法を示しています。 $ urlを使用してリモートファイルのアドレスを定義し、 file_get_contents()関数を使用してファイルの内容を読み取ります。読み取りが失敗した場合、 die()関数を介してエラーメッセージを出力します。
PHPでは、 XML_PARSE関数を使用してXMLデータを解析します。 XML文字列を加工可能な構造に分割することで機能します。それを使用して、リモートXMLファイルを解析し、必要な情報を抽出できます。
<?php
// リモート XML 提出 URL
$url = 'http://m66.net/remote-file.xml';
// 使用 file_get_contents 得る XML コンテンツ
$xmlContent = file_get_contents($url);
if ($xmlContent === FALSE) {
die('Error: Unable to fetch XML file');
}
// 作成する XML パーサー
$parser = xml_parser_create();
// 分析 XML コンテンツ
if (!xml_parse($parser, $xmlContent, true)) {
die('Error: Failed to parse XML');
}
// 释放パーサー资源
xml_parser_free($parser);
echo "XML 文件分析成功";
?>
このコードは、最初にfile_get_contentsを使用してXMLファイルのコンテンツを取得し、次にXML_PARSER_CREATEを介してXMLパーサーを作成します。次に、 XML_PARSEはXMLコンテンツを解析するために使用されます。最後に、 xml_parser_freeを使用してパーサーリソースをリリースすることを忘れないでください。
実際のアプリケーションでは、XMLファイルを取得および解析するだけでなく、それらからデータを抽出する必要があります。 XMLファイルにいくつかの製品情報が含まれていると仮定すると、 XML_PARSEを使用してデータを解析し、この情報を抽出できます。
<?php
// リモート XML 提出 URL
$url = 'http://m66.net/products.xml';
// 使用 file_get_contents 得る XML コンテンツ
$xmlContent = file_get_contents($url);
if ($xmlContent === FALSE) {
die('Error: Unable to fetch XML file');
}
// 作成する XML パーサー
$parser = xml_parser_create();
// コールバック関数を定義します,用于分析 XML コンテンツ
function startElement($parser, $name, $attrs) {
if ($name == "PRODUCT") {
echo "<b>Product:</b><br>";
}
}
function endElement($parser, $name) {
if ($name == "PRODUCT") {
echo "<br>";
}
}
function characterData($parser, $data) {
echo $data;
}
// コールバック関数を設定します
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
// 分析 XML コンテンツ
if (!xml_parse($parser, $xmlContent, true)) {
die('Error: Failed to parse XML');
}
// 释放パーサー资源
xml_parser_free($parser);
echo "XML 文件分析完成";
?>
この例では、いくつかのコールバック関数を定義します。
startelement : <product>タグに解析するときに呼び出されます。
エンデレメント: </product>タグに解析するときに呼び出されます。
CharacterData :タグでデータを処理するために使用されます。
関連タグ:
xml_parse file_get_contents