'How can I replace the img src value using node-html-parser in server side?
I have html code, and I want to change the src value on the <img tag in server side. I was using node-html-parser library.
Here's my code :
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()
...
here's my html code :
<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>
But when I run the code above, the result is just print here, and the next line is not executed, even the process.exit().
Is there any mistake that I made ? I just want to change the src value inside the <img tag.
Please ask me for more information if it's still not enough to solved it, Thankss
Solution 1:[1]
For a while, I found the solution. But i'm using regex to replace the src value inside <img tag. This solution is possible to replace with single image, when you have multiple <img tag. It will replace all the src value within <img tag.
...
const re = /src=['"](?:[^"'\/]*\/)*([^'"]+)['"]/g;
parsedTemplateContent = templateContent.replace(re,'src="cid:image"');
...
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | user18605090 |
