为什么我尝试将 text/xml 转换为对象时得到 {"location": null}?
Why am I getting a {"location": null} when I try to convert a text/xml into an object?
我正在尝试了解 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
?如何按照文档的建议将此字符串解析为对象?
请使用以下脚本:-
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>
如你所愿。
Document
returned from parseFromString()
is not JSON, if you want to stringify the result, use an XMLSerializer
.
const xml = '<data>Hello World</data>';
const doc = new DOMParser().parseFromString(xml, 'text/xml');
const docString = new XMLSerializer().serializeToString(doc);
console.log(docString);
来自文档-
The DOMParser interface provides the ability to parse XML or HTML
source code from a string into a DOM Document.
因此,它正在将 XML 或 HTML 转换为 DOM Document, not 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));
parseFromString
returns 保存文本解析表示的文档 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
的信息。
我正在尝试了解 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
?如何按照文档的建议将此字符串解析为对象?
请使用以下脚本:- 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>
如你所愿。
Document
returned from parseFromString()
is not JSON, if you want to stringify the result, use an XMLSerializer
.
const xml = '<data>Hello World</data>';
const doc = new DOMParser().parseFromString(xml, 'text/xml');
const docString = new XMLSerializer().serializeToString(doc);
console.log(docString);
来自文档-
The DOMParser interface provides the ability to parse XML or HTML source code from a string into a DOM Document.
因此,它正在将 XML 或 HTML 转换为 DOM Document, not 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));
parseFromString
returns 保存文本解析表示的文档 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
的信息。