尝试将text / xml转换为对象时,为什么会得到{“ location”:null}?

时间:2019-04-29 18:42:42

标签: javascript xml domparser

我正在尝试了解DOMParser的行为,但是出了一些问题,我不知道如何找到问题。这是解析包含XML文本的字符串的简单代码:

const xml = '<data>Hello World</data>'

const parser = new DOMParser()
const result = parser.parseFromString(xml, 'text/xml')

alert(JSON.stringify(result))

如您所见,我得到一个{"location": null}。有人可以向我解释什么是错的,location是什么?如文档所述,如何将这个字符串解析为对象?

4 个答案:

答案 0 :(得分:1)

Document返回的parseFromString()不是JSON,如果要对结果进行字符串化,请使用XMLSerializer

/etc/nginx/sites-availabe/default

答案 1 :(得分:1)

parseFromString返回包含文本的解析表示形式的文档object,例如:

const xml = '<data>Hello World</data>'

const parser = new DOMParser()
const result = parser.parseFromString(xml, 'text/xml')

console.log(result)

您可以在console.log()中看到完整的对象。由于您担心"location": null的来源,因此目前尚不清楚返回文档的URL应该是什么。

enter image description here

您可以从here了解有关parseFromString的更多信息。

答案 2 :(得分:-1)

请使用以下脚本:- HTML-

<p id="demo"></p>

JavaScript-

<script>
var parser, xmlDoc;
var text = "<data>Hello`enter code here` World</data>";

parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");

document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("data")[0].childNodes[0].nodeValue;
</script>

它可以根据需要工作。

答案 3 :(得分:-1)

从文档-

  

DOMParser接口提供了解析XML或HTML的功能   源代码,从字符串到DOM文档。

因此,它将XML或HTML转换为DOM Document,而不是JSON。因此,alert(JSON.stringify(result))

无法显示任何结果
const xml = '<data>Hello World</data>'

const parser = new DOMParser()
const result = parser.parseFromString(xml, 'text/xml')
console.log(result); 

Output:
#Document
<data>Hello World</data>

为获得预期结果,请使用XMLSerializer

let s = new XMLSerializer();
console.log(s.serializeToString(result));