sql >> データベース >  >> RDS >> Mysql

whileループによって生成されたxmlを変数に割り当てる

    DOM を使用してこれを行う方法は次のとおりです。 :

    function createUserDetailsXml(array $result) {
    
        $dom  = new DOMDocument;
        $dom->formatOutput = TRUE; // enable automatic indenting
        $dom->loadXML('<users/>'); // set root node
    
        foreach($result as $row) {
    
            // create user-details node
            $user = $dom->createElement('user-details');
    
            // create and append details to user-details node
            $user->appendChild(
                $dom->createElement('user-id', $row['uid']));
            $user->appendChild(
                $dom->createElement('user-name', $row['userName']));
            $user->appendChild(
                $dom->createElement('user-points', $row['points']));
            $user->appendChild(
                $dom->createElement('image-url', $row['imageURL']));
            $user->appendChild(
                $dom->createElement('thumb-url', $row['thumbURL']));
    
            // add user-details node to XML document, e.g. users node
            $dom->documentElement->appendChild($user);
        };
        return $dom->saveXML(); // returns the formatted XML
    };
    

    この関数は、完全な結果配列を渡すことを想定しているため、次のコマンドでテストできます。

    $result = array(
        array(
            'uid'      => 1,
            'userName' => 'Gordon',
            'points'   => PHP_INT_MAX,
            'imageURL' => 'http://example.com/gordon.jpg',
            'thumbURL' => 'http://example.com/t_gordon.jpg'
        ),
        array(
            'uid'      => 2,
            'userName' => 'John <blink>"Frigging"</blink> Doe',
            'points'   => 0,
            'imageURL' => 'http://example.com/johndoe.jpg',
            'thumbURL' => 'http://example.com/t_johndoe.jpg'
        )
    );
    echo createUserDetailsXml($result);
    

    その後、関数は戻ります

    <?xml version="1.0"?>
    <users>
      <user-details>
        <user-id>1</user-id>
        <user-name>Gordon</user-name>
        <user-points>2147483647</user-points>
        <image-url>http://example.com/gordon.jpg</image-url>
        <thumb-url>http://example.com/t_gordon.jpg</thumb-url>
      </user-details>
      <user-details>
        <user-id>2</user-id>
        <user-name>John &lt;blink&gt;"Frigging"&lt;/blink&gt; Doe</user-name>
        <user-points>0</user-points>
        <image-url>http://example.com/johndoe.jpg</image-url>
        <thumb-url>http://example.com/t_johndoe.jpg</thumb-url>
      </user-details>
    </users>
    

    DOMがJohnDoeの名前の特別な文字を自動的にエスケープしたことに注意してください。 DOMは、XML要素名(またはそれらを使用する場合は属性)が構文的に有効であることも確認します。 XMLプロローグも追加しました。




    1. データベースにblobを読み込もうとすると、なぜjava.lang.AbstractMethodErrorが発生するのですか?

    2. MySQLWorkbenchをフェッチしています...-DBを参照できません

    3. リテラルを使用したMysql正規表現エラー#1139-

    4. SQL Serverチュートリアル–Transact-SQLをマスターするために必要なすべて