1

有一个 RSS 提要 xml 文件

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
        <item>
            <title>news title 1</title>
            <link>http://URL</link>
            <description>
                <div><b>Article_Title:</b> AAAAA</div>
                <div><b>Article_Summary:</b> AAAAAA</div>
                <div><b>Article_Date:</b> 05/08/2013</div>
            </description>
            <author>QWERT</author>
            <pubDate>Mon, 27 May 2013 16:13:50 GMT</pubDate>
            <guid isPermaLink="true">http://URL</guid>
        </item>
        <item>
            <title>news title 2</title>
            <link>http://URL</link>
            <description>
                <div><b>Article_Title:</b>BBB</div>
                <div><b>Article_Summary:</b>BBB</div>
                <div><b>Article_Date:</b> 05/10/2013</div>
            </description>
            <author>ASDF</author>
            <pubDate>Tue, 28 May 2013 09:50:51 GMT</pubDate>
            <guid isPermaLink="true">http://URL</guid>
        </item>
    </channel>
</rss>

此 RSS Feed XML 文件驻留在服务器上。我正在获取此 XML 并希望<description>使用 XSL 对标签进行一些更改。

所有这些都应该发生在客户端。所以我想在客户端对原始 RSS 提要文件进行更改。

是否可以使用 XSL 更改原始文件。

提前致谢。

4

1 回答 1

0

用于importStylesheet抓取 .xsl 文件以及transformToFragmentXSLTProcessor JavaScript API 的方法:

function transform()
  {
  var nameOfPage = var value=RegExp("nameOfPage[^&]+").exec(window.location.search)[0].replace(/[^=]+./,"");

  with (new XSLTProcessor)
     {
     setParameter(null, "nameOfPage", nameOfPage);
     importStylesheet("foo.xsl");
     transform.result = transformToFragment(this, document);
     transform.root = transform.result.xml;
     document.getElementById(appendTo).appendChild(transform.root);
     }
  }

其中 foo.xsl 是这样的:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" version="" indent="yes" standalone="no" media-type="text/html" omit-xml-declaration="no" doctype-system="about:legacy-compat" />

<xsl:template match='//channel'>
 <page>
  <content>
   <module>
    <header layout="simple">
     <layout-items>
      <block class="title">YDN Widget</block>
     </layout-items>
    </header>
   </module>
   <xsl:apply-templates select="item" />
  </content>
 </page>
</xsl:template>

</xsl:stylesheet>

应用 XSLT 并将转换后的结果附加到您的文档中。

参考

于 2014-12-19T16:58:29.957 回答