Связывание XSL с XML с помощью HTML с использованием Javascript

0

Хорошо, как говорится в заголовке, у меня возникают проблемы с связыванием моего XML и XSL с кодом HTML с помощью JavaScript. Я новичок в XML, так что легко на меня! Вот часть XML:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="students.xsl" ?>
<CSET2200>
<student>
    <lastname>Hardy</lastname>
    <firstname>Zachary</firstname>
    <id>R09877743</id>
    <major>CSET</major>
    <age>28</age>
</student>
<student>
    <lastname>Boots</lastname>
    <firstname>Erin</firstname>
    <id>R00334423</id>
    <major>SPCH</major>
    <age>26</age>
</student>
<student>
    <lastname>Thorne</lastname>
    <firstname>Lilianna</firstname>
    <id>R55668890</id>
    <major>ENGL</major>
    <age>23</age>
</student>
<student>
    <lastname>Hopper</lastname>
    <firstname>Chance</firstname>
    <id>R66992278</id>
    <major>HIST</major>
    <age>22</age>
</student>
<student>
    <lastname>Laskey</lastname>
    <firstname>Chris</firstname>
    <id>R43346578</id>
    <major>ACCT</major>
    <age>21</age>
</student>
<student>
    <lastname>Starr</lastname>
    <firstname>Ernie</firstname>
    <id>R54456609</id>
    <major>PHARM</major>
    <age>25</age>
</student>
</CSET2200>

И вот XSL-лист, который я использую для создания XML-документа:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Students</h2>
<table border="1">
  <tr bgcolor="#9acd32">
    <th style="text-align:left">Last Name</th>
    <th style="text-align:left">First Name</th>
  </tr>
  <xsl:for-each select="CSET2200/student">
  <tr>
    <td><xsl:value-of select="lastname"/></td>
    <td><xsl:value-of select="firstname"/></td>
  </tr>
  </xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Теперь, ЗДЕСЬ, это часть HTML с Javascript:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function loadXMLDoc (students.xml)
{
    if (window.ActiveXObject)
    {
        xhttp = new ActiveXObject("Msxm12.XMLHTTP");
    }
    else
    {
        xhttp = new XMLHttpRequest();
    }
    xhttp.open("GET", filename, false);
    xhttp.send("");
    return xhttp.responseXML;
}

function studentNames()
{
    xml = loadXMLDoc("students.xml");
    xsl = loadXMLDoc("students.xsl");
    if (window.ActiveXObject || xhttp.responseType == "msxml-document")
    {
    ex = xml.transformNode(xsl);
    document.getElementById("example").innerHTML = ex;
    }
    else if (document.implementation && document.implementation.createDocument)
    {
        xsltProcessor = new XSLTProcessor();
        xsltProcessor.importStylesheet(xsl);
        resultDocument = xsltProcessor.transformToFragment(xml, document);
        document.getElementById("students").appendChild(resultDocument);
    }
}
</script>
</head>
<body onload="studentNames()">
<div id="students"></div>
</body>
</html>

Я считаю, что эта последняя часть правильная и чувствую, что моя проблема заключается в том, как я связал XSL с XML в первую очередь. Любое понимание было бы очень полезно, если бы эта штука отображалась должным образом. Мне действительно не нужно предоставить для отображения его в IE, но он там на всякий случай.

  • 0
    Похоже, что XML прекрасно открывается в Safari и Firefox, стилизация из документа XSL и всего остального. Однако XML не будет открываться вообще в Chrome. Это означает, что что-то не так с частью HTML / JavaScript. Кроме того, почему мой XML вообще не открывается в Chrome? Просто пустое пространство ....
Теги:
xslt

1 ответ

0
Лучший ответ

Может быть, это просто потому, что функция loadXMLDoc (students.xml) должна быть функцией loadXMLDoc (имя файла)

  • 0
    Вот и все. Такая маленькая вещь упускается из виду>. <Спасибо, приятель!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню