ホームページ  >  記事  >  バックエンド開発  >  PHP アプリケーション: 関数を使用して XML を JSON 形式に変換する

PHP アプリケーション: 関数を使用して XML を JSON 形式に変換する

WBOY
WBOYオリジナル
2023-06-19 23:48:081690ブラウズ

インターネット技術の継続的な発展に伴い、データ処理はインターネット アプリケーション開発に不可欠な部分となっています。 XML と JSON は、最も一般的に使用される 2 つのデータ交換形式にもなりました。ただし、実際のアプリケーション開発プロセス中に、PHP はデフォルトで XML 形式の解析をサポートしているが、JSON 形式のサポートは比較的限定されていることがわかりました。そこで今回は、PHPを使ってXML形式のデータをJSON形式のデータに変換する関数を記述する方法を紹介します。

1. 要件の概要

実際のアプリケーション開発プロセスでは、データの共有や交換などを実現するために、XML形式のデータをJSON形式のデータに変換する必要があります。具体的には、元の XML データを解析して PHP 連想配列に変換し、さらにその配列を JSON 形式のデータに変換してクライアントに出力する必要があります。

2. 解決策

上記の要件を達成するには、次の 3 つの手順を実装する必要があります:

1. XML データを解析する

使用PHP の組み込み関数 simplexml_load_string() は、XML 形式のデータを PHP オブジェクトに変換できます。この関数の構文は次のとおりです。

mixed simplexml_load_string ( string $data [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false ]]]] )

このうち、$data パラメータは解析する必要がある XML 文字列を表し、戻り値は解析されたオブジェクトです。 XML データを解析するときは、データの正確性を確認する必要があるため、simplexml_load_string() 関数を check_xml() 関数にカプセル化して、XML データが正当であるかどうかを検証できます。

function check_xml($xml_str)
{
    $obj = @simplexml_load_string($xml_str);
    if ($obj === false) {
        return false;
    }
    return true;
}

2. XML データを PHP 配列に変換する

XML 形式のデータを解析した後、それを PHP 配列に変換する必要があります。オブジェクトを配列に変換するには、PHP の objectToArray() 関数を使用できます。

function objectToArray($object)
{
    $arr = is_object($object) ? get_object_vars($object) : $object;
    if (is_array($arr)) {
        return array_map(__FUNCTION__, $arr);
    } else {
        return $arr;
    }
}

前の check_xml() 関数と組み合わせると、convert_xml_to_array() 関数は次のようにカプセル化できます:

function convert_xml_to_array($xml_str)
{
    $obj = @simplexml_load_string($xml_str);
    if ($obj === false) {
        return false;
    }
    $arr = objectToArray($obj);
    return $arr;
}

3. PHP 配列を JSON 形式のデータに変換します

最後のステップは、PHP 配列を JSON 形式のデータに変換することです。 PHP では、json_encode() 関数を使用して、PHP 配列を JSON 形式のデータに簡単に変換できます。構文は次のとおりです。

string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )

$value パラメータは、JSON 形式のデータに変換する必要がある PHP 配列を表し、戻り値は JSON 形式の文字列です。カプセル化を容易にするために、convert_array_to_json() 関数を次のように定義できます:

function convert_array_to_json($arr)
{
    $json = json_encode($arr, JSON_UNESCAPED_UNICODE);
    return $json;
}

3. 完全なコード

要約すると、上記の 3 つのステップを完全な関数 Convert_xml_to_json (

function convert_xml_to_json($xml_str)
{
    $arr = convert_xml_to_array($xml_str);
    if ($arr === false) {
        return false;
    }
    $json = convert_array_to_json($arr);
    return $json;
}

function check_xml($xml_str)
{
    $obj = @simplexml_load_string($xml_str);
    if ($obj === false) {
        return false;
    }
    return true;
}

function convert_xml_to_array($xml_str)
{
    $obj = @simplexml_load_string($xml_str);
    if ($obj === false) {
        return false;
    }
    $arr = objectToArray($obj);
    return $arr;
}

function convert_array_to_json($arr)
{
    $json = json_encode($arr, JSON_UNESCAPED_UNICODE);
    return $json;
}

function objectToArray($object)
{
    $arr = is_object($object) ? get_object_vars($object) : $object;
    if (is_array($arr)) {
        return array_map(__FUNCTION__, $arr);
    } else {
        return $arr;
    }
}

4. 使用例

使用例は次のとおりです。

$xml_str = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<xml>
  <name>张三</name>
  <age>20</age>
  <gender>男</gender>
  <education>
    <degree>学士</degree>
    <school>清华大学</school>
  </education>
  <education>
    <degree>硕士</degree>
    <school>北京大学</school>
  </education>
</xml>
XML;
if (check_xml($xml_str)) {
    $json = convert_xml_to_json($xml_str);
    echo "JSON: {$json}";
} else {
    echo "XML数据不合法";
}

実行結果は次のとおりです。

JSON: {"name":"u5f20u4e09","age":"20","gender":"u7537","education":[{"degree":"u5b66u58eb","school":"u6e05u534eu5927u5b66"},{"degree":"u7855u58eb","school":"u5317u4eacu5927u5b66"}]}

5. まとめ

この記事では、PHP を使用して XML 形式のデータを JSON 形式のデータに変換する関数を記述する方法を紹介します。 simplexml_load_string() を使用して XML データを解析し、objectToArray() を使用して PHP オブジェクトを PHP 配列に変換し、json_encode() を使用して PHP 配列を JSON 形式のデータに変換することで、データ形式の変換を迅速かつ簡単に実装でき、実用的なアプリケーションを開発できます。プログラムのスケーラビリティと使いやすさを向上させるために適用されます。

以上がPHP アプリケーション: 関数を使用して XML を JSON 形式に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。