使用Node.js解析XML时保留HTML内容

问题描述

我正在尝试解析其中一个节点中包含html的第三方提供的XML文件,并避免解析html(不幸的是,它没有包装在CDATA中)。例如:

<?xml version="1.0" encoding="iso-8859-1"?>
<News>
<Keywords>[..]</Keywords>
<Title>[..]</title>
<Body>
<Body.Content>[BODY_CONTENT_IN_HTML]</Body.Content>
</Body>
</News
</xml>

尝试将正文内容保留为html字符串。我尝试了xml2js,但是它解析了html,并且如果我尝试为该节点将其反向,则不会得到相同的html。有谁知道我怎么能做到这一点(解析xml对象的其余部分,但将body.content节点的内容作为文本检索)?谢谢。

解决方法

您可以尝试将xml当作字符串并将其拆分,直到提取html。

例如:

let str = `<?xml version="1.0" encoding="iso-8859-1"?>
<News>
<Keywords>[..]</Keywords>
<Title>[..]</title>
<Body>
<Body.Content><html><body>Hello,world!</body></html></Body.Content>
</Body>
</News
</xml>
`;
let target = str.split('Content>')[1].split('</Body')[0];
console.log(target);

输出:

<html><body>Hello,world!</body></html>