我有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
值。
如果还不足以解决问题,请向我询问更多信息,谢谢
过了一段时间,我找到了解决办法。但我使用正则表达式来替换
src
标签内的 <img
值。当您有多个 <img
标签时,可以用单个图像替换此解决方案。它将替换 src
标签内的所有 <img
值。
...
const re = /src=['"](?:[^"'\/]*\/)*([^'"]+)['"]/g;
parsedTemplateContent = templateContent.replace(re,'src="cid:image"');
...
您可以通过 getAttribute 函数获取 src 属性:
let base64Image = root.querySelector('img').getAttribute('src');