Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用HTTP请求-响应XML进行E4X解析_Javascript_Xml_Xml Serialization_Xml Parsing_E4x - Fatal编程技术网

Javascript 使用HTTP请求-响应XML进行E4X解析

Javascript 使用HTTP请求-响应XML进行E4X解析,javascript,xml,xml-serialization,xml-parsing,e4x,Javascript,Xml,Xml Serialization,Xml Parsing,E4x,我为目录(地址簿)标记系统准备了一个简单的XML模式。基本结构如下: <?xml version="1.0" encoding="UTF-8"> <directory xmlns="http://example.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.com directory.xsd"> &l

我为目录(地址簿)标记系统准备了一个简单的XML模式。基本结构如下:

<?xml version="1.0" encoding="UTF-8">
<directory
    xmlns="http://example.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://example.com directory.xsd">
    <title>An Example Directory Document</title>
    <creator>Lorem Ipsum Dolor</creator>
    <date>September 29, 2011</date>
    <person>
        <firstName>Lorem</firstName>
        <middleName>Ipsum</middleName>
        <lastName>Dolor</lastName>
        <email type="personal">lorem@ipsum.org</email>
        <email type="other">ispum@dolor.org</email>
        <phone type="mobile">(123) 456-7890</phone>
    </person>
</directory>
我相信XMLHttpRequest很好,只是解析出了问题


提前谢谢

我将实现DOMParser()对象,看看它是如何工作的。E4X在Firefox中已被弃用,因此我不会依赖它生成新代码。仅供参考,
.for
需要是
.htmlFor
(因为
for
在JavaScript中是一个保留字)。
<script type="text/javascript;e4x=1">
var directory;

xmlhttp = new XMLHttpRequest();     
xmlhttp.open('GET', 'http://example.com/directoryExample.xml', true);
xmlhttp.onreadystatechange = (function() {
    if(xmlhttp.readyState === 4) {
        if(xmlhttp.status === 200) {
            directory = xmlhttp.responseXML;
            HandleDirectoryData();
        }
    }
});

function HandleDirectoryData() {
    var container = document.getElementById('output');
    var directoryTitle = directory.title;
    var directoryCreator = directory.creator;
    var directoryDate = directory.date;
    var title = document.createElement('p');
    var creator = document.createElement('p');
    var titleLabel = document.createElement('label');
    var creatorLabel = document.createElement('label');
    title.id = "xmlDirectoryTitle";
    creator.id = "creator";
    titleLabel.for = title.id;
    creatorLabel.for = creator.id;
    titleLabel.textContent = "Title:";
    creatorLabel.textContent = "Creator:";
    titleLabel.appendChild(title);
    creatorLabel.appendChild(creator);
    container.appendChild(titleLabel);
    container.appendChild(creatorLabel);
    for each(var person in XMLData) {
        console.log("Displaying of the person data happens here...");
    }
}