From c0a41ff385324c9e5b5896bbfc414619830e176e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aart=20Ro=CC=88st?= Date: Mon, 18 Oct 2021 16:40:52 -0700 Subject: [PATCH] Void tags cannot have end tags or contents --- src/types/YXmlElement.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/types/YXmlElement.js b/src/types/YXmlElement.js index 464951b4..e9bdad46 100644 --- a/src/types/YXmlElement.js +++ b/src/types/YXmlElement.js @@ -96,6 +96,7 @@ export class YXmlElement extends YXmlFragment { * @public */ toString () { + const voidElements = ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"] const attrs = this.getAttributes() const stringBuilder = [] const keys = [] @@ -110,6 +111,9 @@ export class YXmlElement extends YXmlFragment { } const nodeName = this.nodeName.toLocaleLowerCase() const attrsString = stringBuilder.length > 0 ? ' ' + stringBuilder.join(' ') : '' + if(voidElements.includes(nodeName)) { + return `<${nodeName}${attrsString} />` + } return `<${nodeName}${attrsString}>${super.toString()}` }