看看以下几行:
var doc = jsdom.jsdom("<moshe></moshe>");
console.log(doc.childNodes[0].tagName);
第二行以大写形式将“MOSHE”写入控制台,这意味着jsdom将我的字符串识别为HTML而不是XML。如何强制jsdom保留标签名称原始案例?
提前致谢。
答案 0 :(得分:1)
根据HTML标准tagName在HTML文档中应该是大写的。
tagName属性必须运行以下步骤:
- 如果上下文对象的名称空间前缀不为null,则将限定名称作为其名称空间前缀,后跟&#34;:&#34; (U + 003A),后跟本地名称。否则,请将限定名称作为其本地名称。
- 如果上下文对象位于HTML命名空间及其节点文档中 是一个HTML文档,让限定名称转换为ASCII 大写。
- 返回限定名称。
醇>
Jsdom目前不支持XML文档(官方),因为HTML和XML文档之间没有区别。
要在v1.0 +中解析为XML,你必须提供htmlparser2作为解析器,然后jsdom意味着基于<?xml
指令解析为XML。如果合并#883,则可能不需要这样做,在这种情况下,将引入parsingMode
选项,该选项接受&#34; xml&#34;并切换到xml解析器。
最终,正在努力解决这个问题,但是用jsdom解析XML的直接解决方案并不存在。