web-dev-qa-db-ja.com

XSLTを介してノードにXMLデータを入力する

Drupal 6 Webサイトで、XMLフィードからのデータをページに入力する必要があります。XSLTを使用してデータを適切な形式に変換することを検討していますが、インターネットで検索してアイデアを探していますあまり思いつかなかった。

これまでのところ、私は CCK XSLT を見つけました。これは背後に多くのドキュメントがないようであり、 Services はXML-RPCサーバーとのみ対話するようです(サーバーと対話するのではなく、単にフィード自体をプルするだけです)。

これを行うための良い方法はありますか?

(また、XSLTタグを作成するのに十分な担当者がいません。親切なユーザーが私のためにタグを付け直したい場合は、感謝します)

1
the_e

最も簡単(おそらく最善ではないかもしれません)は、次のようなことです。

// http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_permission/7

function mymodule_permission ()
{
    return array(
        "view mypage" => array(
            "title" => t("View My Page"), 
            "description" => t("View My Page"),
        ),
    );
}

// http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_menu/7

function mymodule_menu ()
{
    $items = array();

    $items["mymodule_mypage"] = array(
        "title" => "My Page",
        "page callback" => "_mymodule_generate",
        "access arguments" => array("view mypage"),
        "type" => MENU_CALLBACK,
    );

    return $items;
}

function _mymodule_generate ()
{
    $path = drupal_get_path('module', 'mymodule');

    drupal_add_css("{$path}/mymodule.css", array(
        "type" => "file",
    ));

    $xsl = new DOMDocument();
    $xsl->load("{$path}/mymodule.xsl");

    $xslt = new XSLTProcessor();
    $xslt->importStyleSheet($xsl);

    $xml = new DOMDocument();
    $xml->load("{$path}/mymodule.xml");

    return (string) $xslt->transformToXML($xml);
}

これは、XML形式で保持されている履歴書を表示するために、カスタムモジュールから取得したコードを取り除いたものです。

1
mpdonadio