$.parseXML not working with valid xml

2019-04-23 01:07发布

问题:

XML:

<?xml version="1.0"?>
<choices>
    <choice>
        <start>39</start>
        <duration>6</duration>
        <path>
            <name></name>
            <complete></complete>
        </path>
        <path>
            <name></name>
            <complete></complete>
        </path>
    </choice>
</choices>

$.ajax({
    url: 'choices.xml',
    context: this,
    async: false,
    success: function(response) {
        var xmlDoc = $.parseXML(response);
        console.log(xmlDoc); // null
    }
});

The XML is reported as valid, and no error is thrown. I know I can use $(response), but I don't need that.

  • jQuery 1.7.2

回答1:

dataType
Default: Intelligent Guess (xml, json, script, or html)

"xml": Returns a XML document that can be processed via jQuery.

The $.ajax() function relies on the server to provide information about the retrieved data. If the server reports the return data as XML, the result can be traversed using normal XML methods or jQuery's selectors. If another type is detected, such as HTML in the example above, the data is treated as text.

The result should already be parsed.

If you specifically don't want it to be parsed, use a different dataType.