我正在尝试了解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
是什么?如文档所述,如何将这个字符串解析为对象?
答案 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应该是什么。
您可以从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));