【发布时间】:2012-08-15 07:46:10
【问题描述】:
我正在开发 Liferay portlet。 portlet 应该从与 Liferay 相同的服务器加载 xml 文件,然后通过 ajax 解析此 xml 并将这些值传递给 jQuery。我从 html 文件开始仅测试功能。到目前为止一切正常,但是当我将 html 和 js 代码放入 portlet 时,jQuery 可以工作,但我无法加载文件。我希望 xml 文件位于 /etc/config_files/settings.xml
这是我的 jQuery 脚本的一部分
function getToolContent(tool){
var layer = '.links_' + tool.toLowerCase();
$(layer).text("");
$.ajax({
type:"GET",
url: "/etc/config_files/settings.xml",
dataType: "xml",
success: function(xml){
$(xml).find("tool").each(function() {
if($(this).find('section').text() == tool){
var title = $(this).find('title').text();
var text = $(this).find('text').text();
$(this).find("link").each(function() {
var label = $(this).find('label').text();
var referer = $(this).find('referer').text();
$(layer).append('<a href="' + referer + '" class="formatted_link" alt="'+ tool + ' link">'+ label +'</a><br>');
});
$("#text").html('<h2>'+ title + '</h2>' +'\n'+ text);
}
});
}
});
}
这里是xml文件的示例
<?xml version="1.0" encoding="UTF-8"?>
<descriptions>
<tool>
<section>TOOL NAME</section>
<title>TOOL TITLE</title>
<text>
<![CDATA[
<ul>
<li>FEATURE 1</li>
<li>FEATURE 2</li>
<li>FEATURE 3</li>
</ul>
]]>
</text>
<links>
<link>
<label>TOOL LINK LABEL 1</label>
<referer>https://mytool1.com/</referer>
</link>
<link>
<label>TOOL LINK LABEL 2</label>
<referer>https://mytool2.com/</referer>
</link>
</links>
</tool>
<tool>
...
</tool>
</descriptions>
只是我无法从 settings.xml 中获取数据
-感谢您的帮助
【问题讨论】:
-
您的应用服务器可以访问 /etc/config_files/settings.xml 吗?如果那是 /etc 在您的文件系统的根目录,那么我怀疑您无法访问它。
标签: jquery xml ajax parsing liferay