如何在服务器端使用node-html-parser替换img src值?

问题描述 投票:0回答:2

我有html代码,我想更改服务器端

src
标签上的
<img
值。我正在使用
node-html-parser
库。 这是我的代码:

const root = HTMLParser.parse(templateContent);

let base64Image = root.querySelector('img').rawAttributes.src;
console.log('here');
root.getElementsByTagName('img')[0].rawAttributes.src.set_content('src="cid:image"');
console.log(root.toString())
process.exit()
...

这是我的 html 代码:

<p><img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQIAJgAmAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAgACADAREAAhEBAxEB/8QAGQABAQADAQAAAAAAAAAAAAAACAUDBgcJ/8QALBAAAgIBAgUCBQUBAAAAAAAAAQIDBAUAEQYHEiExE3EyQVGB0RciRmGUof/EABsBAAIDAQEBAAAAAAAAAAAAAAUIAAYHBAID/8QALxEAAgAFAQYEBQUAAAAAAAAAAQIAAwQFESEGEjFBUWETcZHRFBYiocFSU1SSsf/aAAwDAQACEQMRAD8A8sbt2e5bmnnmeaaRyzu7EliT5J1IkdF5L8DpxRdu3r0XrUay+mqP3DyN+BufuNCLhUmSoVDqf8jR9jbGlzmzKioXMtBjXgWPsNfMiOq5LlxhYsfYkjxNZpI42dVEYBJAJA0FSsmlgCxjUqjZ23JJdlp1yASNOggzU7s9O3DPBM8U0bhkkRiCpB8g6uMLNGLoaWfoRSzM2wUDuTv41CcamPSgsQANYUuOr0uUPLeNbrxx2YoGmZGOxmsMN+gfXvsvsNUhme4VP0cCfQQzdOlPsnZAJ5AYKSR+pzrgdddPIRewGVrZ3hmtPHciszS0w7mNu/X0fu7e++uWarSppUjGD+YOUNXKrqFJizAxKAnHXd1++YHSfGvvrQYUaNy5QUY8jzQwMEsQmU2S/Q3glVZh/wBAOhtycpSTGB5RbdkpKz75So4yN7OO4BI+4hTcZ8tcbxzQFW69mBfUEhetJ0sxG+wO4I277+PIGqHTV8ylbeTB84Zi77PUt6k+DPLKM5+k4J9cjHPhxinhOEcfw7iVx2PrJWrhOkhBsWO2xY/Unz76+E2qec/iOcmCNHa6e304paZN1cY056Yye5gecyeGavB3HmSw9NpWrVXQIZiC53RWO5AHzJ+WtHoZ7VNOs1+J94U3aO3SrTdJ1FIJKpjGeOqg9usRUkyPD2XaSFrGPyFaQgOhMckbdwe47j5663RZilXGQYBSJ82mmCdIYqw4EHBHkRFb9ROLT/I8v/sk/OuX4Gl/aX0EGPmC7/y5n9294U1LmhgzwnWjbMU5booRrKJLIDlzEN++/wAW+/3/AL1QXoJ/jkhDjJ5d4ZWTtLbzb0U1Cl9wZywznd158fz3gfQQW8pfijRJbNmV1VRsWZj4A1pQAAwIU1nZzvMcmP/Z"></p>
<p>Hello Dear</p>
<p>My name is Daren.</p>
<p><br></p>

但是当我运行上面的代码时,结果只是打印

here
,而下一行并没有执行,甚至连
process.exit()
也没有执行。

我有什么错误吗?我只想更改

src
标签内的
<img
值。 如果还不足以解决问题,请向我询问更多信息,谢谢

javascript html node.js html-parsing
2个回答
0
投票

过了一段时间,我找到了解决办法。但我使用正则表达式来替换

src
标签内的
<img
值。当您有多个
<img
标签时,可以用单个图像替换此解决方案。它将替换
src
标签内的所有
<img
值。

...

const re = /src=['"](?:[^"'\/]*\/)*([^'"]+)['"]/g;
parsedTemplateContent = templateContent.replace(re,'src="cid:image"');

...

0
投票

您可以通过 getAttribute 函数获取 src 属性:

let base64Image = root.querySelector('img').getAttribute('src');
© www.soinside.com 2019 - 2024. All rights reserved.