例如
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
在上面的xml </note>
中,如何使用nodejs在xml中动态查找和添加错过的关闭标记。
答案 0 :(得分:1)
为了解析和验证XML,需要schema definition (XSD)。
有了这个,解析器就能够验证元素并告诉你是否有任何无效 - 缺失,拼写不正确等。
举个例子 - 没有XSD,您不会知道note
是否可以包含任何其他子元素,例如date
。
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<date>2016-01-01</date>
而对于XSD,解析器将知道note
元素将包含to
,from
,heading
和body
元素,之后我们期待收到note
代码。
一旦您知道验证问题的位置 - 例如缺少结束标记 - 您就可以执行清理。
NodeJS有许多XML解析器选项,例如......
https://www.npmjs.com/package/libxml-xsd https://www.npmjs.com/package/jgexml
答案 1 :(得分:0)
你需要一些解析器来解析输入的脏HTML并清理它。 您可以使用充满脏HTML的字符串提供DOMPurify,它将返回一个包含干净HTML的字符串。 看看https://github.com/cure53/DOMPurify
var clean = DOMPurify.sanitize(dirtyHTML);
您还可以浏览JSDOM和其他类似的DOM解析器库。