我有一个 XML 提要,我已将其转换为动态 Drupal 页面的 HTML,感谢 drupal.stackexchange.com上的好用户。然而,问题在于 XML 提要列出了可能需要知道的所有内容,而我的要求是每个页面都呈现特定的信息子集。
从本质上讲,这是一个需要分解的演示时间表。
我的示例提要如下:
<track name="Track 1">
<session name="Session 1" starttime="2012-06-06 10:45" endtime="2012-06-06 12:45">
<presentation name="Presentation 1">
<author>Name 1</author>
<author>Name 2</author>
<abstract>summary of this presentation</abstract>
</presentation>
<presentation name="Presentation 2">
...presentation info
</presentation>
</session>
<session name="Session 2" starttime="2012-06-06 10:45" endtime="2012-06-06 12:45">
<presentation name="Presentation 3">
...presentation info
</presentation>
<presentation name="Presentation 4">
...presentation info
</presentation>
</session>
<session name="Session 3" starttime="2012-06-07 08:45" endtime="2012-06-07 10:45">
<presentation name="Presentation 5">
...presentation info
</presentation>
<presentation name="Presentation 6">
...presentation info
</presentation>
</session>
</track>
因此,如您所见,我获得了整个过程的所有信息。每个轨道、会话和演示都在一个提要中。截至目前,我可以毫无问题地将其解析为动态页面。
本质上,这就是我想要得到的(忽略 dateTime 的解析......我已经有了它):
<h2>Track 1</h2>
<h3>Session 1</h3>
<ul>
<li><a href="presentation-1.html">Presentation 1</a></li>
<li><a href="presentation-2.html">Presentation 2</a></li>
</ul>
<h3>Sessoin 2</h3>
<ul>
<li><a href="presentation-3.html">Presentation 3</a></li>
<li><a href="presentation-4.html">Presentation 4</a></li>
</ul>
然后,单击其中一个演示链接会将您带到一个新页面:
<h2>Presentation 1</h2>
<p>Presented by Name 1, Name 2</p>
<p>summary of this presentation</p>
所以,我在这里有两个问题......我不完全知道如何以这种方式分解提要,这必须在 Drupal 6 模块中完成。我只是展示了一个示例提要的片段......因为我得到的提要非常大,必须以这种方式分解。
我拥有的 Drupal 代码如下:
function _xml_import_generate()
{
$path = drupal_get_path('module', 'xml_import');
$xsl = new DOMDocument();
$xsl->load("{$path}/xml_import.xsl");
$xslt = new XSLTProcessor();
$xslt->importStyleSheet($xsl);
$xml = new DOMDocument();
$xml->load("myfeed.xml");
return (string) $xslt->transformToXML($xml);
}