【发布时间】:2014-10-02 20:03:28
【问题描述】:
对此提前致歉:我是 XSLT 和 jQuery 的新手,很快就会明白。首先我会给出我正在使用的文件的(精简的)内容,然后我会提出我的问题。
test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<contentDefinition>
<contentDefinitionNode objectId="rssFeedUrl" type="textbox" label="RSS Feed URL" required="yes" translate="false">http://clinicaltrials.gov/ct2/results/rss.xml</contentDefinitionNode>
</contentDefinition>
test.xsl:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" encoding="utf-8" omit-xml-declaration="yes"/>
<xsl:variable name="rssFeedUrl" select="//contentDefinitionNode[@objectId='rssFeedUrl']/@select" />
<xsl:template match="/">
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="C:\Users\me\Documents\Visual Studio 2012\Projects\ContentDemo\scripts\jquery.zrssfeed.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#test').rssfeed('$rssFeedUrl', {
});
});
</script>
</head>
<body>
<div id="test"></div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我想做的是从 test.xml 中读取 rssFeedUrl 并将其传递给 test.xsl 的 rssfeed 函数。在 VS 中运行转换,我不断收到以下消息:“指定的 URL 无效。”我知道 URL 没问题,因为当我将它直接传递到 rssfeed 函数时,我得到了我期望的提要。所以我猜它是从 xml 文件中错误地读取的。
我确实尝试了很长一段时间来自行解决此问题,但甚至无法弄清楚如何显示无效 URL 是什么。我尝试将以下内容插入到元素中,但收到一条错误消息,指出该变量无效:
<script>
function showIt() {
alert($rssFeedUrl)
};
window.onload=showIt
</script>
我猜这个错误是因为变量超出范围,但我不确定如何修复它。这只是说我试图调试 URL 问题,但不知道如何去做。 (我什至不知道如何使用 xsl 将值打印到屏幕上。)
如果有任何帮助,我将不胜感激。如果这些问题的答案是显而易见的,我再次道歉。我对其中的大部分内容都很陌生。
【问题讨论】:
-
您是否在运行 XSL 转换时遇到错误?如果是,我无法使用您发布的代码重现该问题 - 请参阅:xsltransform.net/eiZQaEY。
-
感谢您回复我。是的,这就是我得到错误的地方。
标签: javascript jquery xml xslt