Populate nodes with XML data via XSLT
The easiest (though probably not the best), is to do something like:

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

function mymodule_permission ()
{
    return array(
        "view mypage" =&gt; array(
            "title" =&gt; t("View My Page"), 
            "description" =&gt; 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" =&gt; "My Page",
        "page callback" =&gt; "_mymodule_generate",
        "access arguments" =&gt; array("view mypage"),
        "type" =&gt; MENU_CALLBACK,
    );

    return $items;
}

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

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

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

    $xslt = new XSLTProcessor();
    $xslt-&gt;importStyleSheet($xsl);

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

    return (string) $xslt-&gt;transformToXML($xml);
}


This is stripped down code I have taken from a custom module I have for displaying a resume maintained in XML format.