gpt4 book ai didi

javascript - 在 XSLT 中使用 javascript 加载 xml 文件

转载 作者:行者123 更新时间:2023-11-28 01:42:20 25 4
gpt4 key购买 nike

我被困在这个问题上。我有一个 XSLT 文件,它使用 XML 文件从中检索数据。在这个 XSLT 文件中还有一个 javascript。其目的是为 XSLT 中的“foreach”语句创建计数器。

现在我需要向 javascript 添加一项功能,以从 XML 文件获取特定条目。我将在此处粘贴 xml 的一部分,以便我可以进一步解释。

<ROW>
<Date>03-12-2013</Date>
<School>SvR</School>
<Locale>B1.04</Locale>
<Class>1236VUGK16</Class>
<Time>09:00-16:00</Time>
</ROW>

我需要从“日期”获取数据。但我不知道如何在 javascript 中加载 xml 文件来实现这一点。我发现一些 html 代码告诉我 xmlDoc.load 会执行此操作,但事实并非如此。它会给我一个语法错误。这是因为它是 XSLT 格式的吗?我怎样才能实现我想要的?

最佳答案

你需要 4 样东西

  1. data.xml -> XML 文件
  2. Openxml.js -> 包含打开 Javascript 的函数
  3. filejs.js -> 包含读/写函数和其他数据内容。
  4. index.html -> 显示信息

第 1 部分,您的 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<events>
<ROW>
<Date>03-12-2013</Date>
<School>SvR</School>
<Locale>B1.04</Locale>
<Class>1236VUGK16</Class>
<Time>09:00-16:00</Time>
</ROW>
</events>

第 2 部分:

unction OpenFile(fichXML)
{
var xmlDoc=undefined;
try
{
if (document.all) //IE
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
}
else //firefox
{
xmlDoc = document.implementation.createDocument("","",null);
}
xmlDoc.async=false;
xmlDoc.load(fichXML);


}
catch(e)
{
try { //otros safari, chrome
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET",fichXML,false);
xmlhttp.send(null);
xmlDoc = xmlhttp.responseXML.documentElement;
return xmlDoc;
}
catch (e)
{
return undefined;
}

}
return xmlDoc;
}

第 3 部分:

    function Event(date)
{
this.date = date;

}
//funciton to charge XMLElements
function ChargeXMLElements()
{
try
{
xmlDoc=OpenFile("data.xml");
eventosXML=xmlDoc.getElementsByTagName('ROW');

if (eventosXML.length>0)
{
eventos=new Array(); //clase con los datos cargados
}
for(var i=0; i< eventosXML.length; i++)
{
xmlEvento=eventosXML[i];

fecha=xmlEvento.getElementsByTagName("DATE")[0].firstChild.nodeValue;

evento = new Evento(fecha);
eventos.push(evento);

}
return eventos;
}
catch(e)
{
alert("Error on the load data");
}

}
//show information take on previously function, and show on a table (with only 1 column)
function showinformation()
{
var tr;
var td;
var tabla;
var l=0;
ev= CargarXMLEventos();
auxUnEven=ev.pop();
tabla=document.getElementById("datos");
while (auxUnEven!=undefined)
{
tr=tabla.insertRow(l);
//creamos las columnas de la tabla
td=tr.insertCell(0);
td.innerHTML=auxUnEven.date;
/*td=tr.insertCell(1);
td.innerHTML=auxUnEven.hora;
td=tr.insertCell(2);
td.innerHTML=auxUnEven.comentario; */ //if you need more columns
l++;
auxUnEven=ev.pop();
}
if (l==0)
{
tabla=document.getElementById("datos");
tr=tabla.insertRow(l);
td=tr.insertCell(0);
td.innerHTML=" dont have events ";
}

}

第 4 部分:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>example XML</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="filejs.js"></script>
<script type="text/javascript" src="Openxml.js"></script>
</head>
<body>
<table id="datos">
<script type="text/javascript">
showinformation();
</script>
</table>
</body>
</html>

我认为这是有用的,但我不知道。我在这里看到信息:http://elcaminillo.wordpress.com/2012/01/15/leer-xml-en-javascript/ (西类牙语,抱歉)

关于javascript - 在 XSLT 中使用 javascript 加载 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20760802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com