求助:关于HTML通过JS中读取XML数据并显示的问题.(急)

BainStudio 2003-08-25 09:40:18
介绍:用XML做为数据文件.
这里用JS做为调用XML文件的脚本文件.

目的:在一个HTML文件中调用XML,并把XML中的数据调用出来.

JS FILES:

document.write ("<TR>");
document.write ("<TD><a href='Default.asp'>首页</a> | "+SetWeb_XmlFile("/CRMWebOnline/Resource/Templates/Default/XML/","SiteHeadNav.xml")+"></TD>");
document.write ("</TR>");

function SetWeb_XmlFile(XmlFileUrl,XmlFileName){
var XmlDoc = new ActiveXObject("Microsoft.XMLDOM");
var XmlDocSrc = XmlFileUrl + XmlFileName;
var currNode
XmlDoc.async = false;
XmlDoc.load(XmlDocSrc);

if (XmlDoc.load(XmlDocSrc)==false){
alert ('XML数据文件,文件不存在后文件损坏。');
}
}

XML:
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="FormatSiteHeadNav.xsl"?>

<SITE_HEAD_NAV>
<Link Href="#" Target="" LinkName="新闻中心"/>
<Link Href="#" Target="" LinkName="品牌介绍"/>
<Link Href="#" Target="" LinkName="公司简介"/>
<Link Href="#" Target="" LinkName="诚征加盟"/>
<Link Href="#" Target="" LinkName="合作伙伴"/>
<Link Href="#" Target="" LinkName="在线留言"/>
<Link Href="MemberLogin.asp" Target="" LinkName="会员登录"/>
</SITE_HEAD_NAV>

XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="//SITE_HEAD_NAV"/>
</xsl:template>

<xsl:template match="Link">
<a href="{@Href}" target="{@Target}"><xsl:value-of select="@LinkName" /></a> |
</xsl:template>
</xsl:stylesheet>
======================================================================
上面是调用XML文件的JS和想实现的效果,但是现在显示的为:undefined
我现在就是想通过两个JS把数据显示出来.但是具体错误在哪里不太清楚.是否是需要用到XMLHTTP???

请高手指点一下.
...全文
299 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
awaysrain 2003-08-25
  • 打赏
  • 举报
回复
看看CSDN的保存

function saveas(id)
{
var filename = "/expert/topic/"+Math.floor((parseInt(id)-1)/1000).toString()+"/"+id+".xml"
//alert(filename);
var csdnxml=new ActiveXObject("Microsoft.XMLDOM");
var csdnxsl=new ActiveXObject("Microsoft.XMLDOM");
csdnxml.async=false;
csdnxsl.async=false;
try
{
//alert("11");
csdnxml.load(filename);
if(csdnxml.parseError.errorCode)
{
alert(filename+"解析错误\n"+csdnxml.parseError.reason);
}

csdnxsl.load("/expert/xsl/100.xsl");
if(csdnxsl.parseError.errorCode)
{
alert("解析错误\n"+csdnxsl.parseError.reason);
}
var html=csdnxml.transformNode(csdnxsl);
//alert(html);
}
catch(x)
{
alert("无法保存!!")
return;
}

var winSave = window.open();
winSave.document.open ("text/html","gb2312");
winSave.document.write (html);
winSave.document.execCommand ("SaveAs",true,"csdn_"+id+".htm");
winSave.close();
}
ky99xing 2003-08-25
  • 打赏
  • 举报
回复
附上例子:
<body>
<div id="showXML"></div>
<script language="javascript">
………………
函数
………………
var mdoc = loadXMLDocument("你的路径+文件名");
var sdoc = loadXSLDocument("你的路径+文件名");
showXML.innerHTML = mdoc.transformNode(sdoc);
</script>
</body>
ky99xing 2003-08-25
  • 打赏
  • 举报
回复
1、写上正确的xml的dtd定义后再试试
2、我这里有一个函数,久经考验,你可以用用:
////////////////////////////////////////////////////////////
//载入指定的xml文档,并返回
//docName:路径+文件名
function loadXMLDocument(docName)
{
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.async = false;
xmldoc.validateOnParse = false;
xmldoc.load(docName);
if(xmldoc.parseError.errorCode != 0) {
alert(showError(xmldoc));
return(false);
}
return(xmldoc);
}


////////////////////////////////////////////////////////////
//载入指定的xsl文档,并返回
//docName:路径+文件名
function loadXSLDocument(docName)
{
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.async = false;
xmldoc.load(docName);
if(xmldoc.parseError.errorCode != 0) {
alert(showError(xmldoc));
return(false);
}
return(xmldoc);
}
/////////////////////////////////////////////////////////////////////
//生成指定的xml文件的出错信息
function showError(xmldoc)
{
var strError = new String;
var err = xmldoc.parseError;
strError = 'Error!\n' +
'file url: '+err.url +' \n'+
'line no.:'+err.line +'\n'+
'char: '+ err.linepos + '\n' +
'source: '+err.srcText+'\n'+
'code: '+err.errorCode+'\n'+
'description: '+err.reason+'\n';
return(strError);
}

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧