Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

245
Views
¿Cuál es la diferencia entre externalHTML y XMLSerializer().serializeToString(SvgNode)?

¿Cuál es la diferencia entre SVGNode.outerHTML y XMLSerializer().serializeToString(SVGNode) ?

El resultado parece ser el mismo.

Gracias de antemano.

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

XMLSerializer producirá un marcado XML válido, mientras que outerHTML solo generará HTML.

SVG en HTML es mucho más laxo que cuando se analiza como un documento XML independiente. Por ejemplo, en HTML puede omitir xmlns="http://www.w3.org/2000/svg" en la raíz <svg> , como un documento independiente no puede. Esto también es cierto para cualquier atributo de espacio de nombres, HTML no tiene un concepto de espacio de nombres. XMLSerializer lo agregará nuevamente, mientras que outerHTML no lo hará. Otra diferencia menor es que en HTML, solo los elementos vacíos pueden omitir sus etiquetas finales. Al analizar, el analizador HTML también permitirá elementos dentro y el nodo <svg> , pero cuando obtenga el outerHTML , el serializador lo agregará nuevamente. El XMLSerializer no lo hará.

 const svgNode = document.querySelector("svg"); console.log("outerHTML", svgNode.outerHTML) console.log("XMLSerializer", new XMLSerializer().serializeToString(svgNode))
 <svg><rect width=30 height=30 /></svg>

Tenga en cuenta que estos puntos son importantes porque si desea cargar la cadena generada como una imagen SVG, solo funcionará la producida por XMLSerializer:

 const svgNode = document.querySelector("svg"); const outerImg = new Image(); outerImg.src = "data:image/svg+xml," + encodeURIComponent(svgNode.outerHTML); document.body.append("outerHTML:", outerImg, document.createElement("br")); const serializerImg = new Image(); serializerImg.src = "data:image/svg+xml," + encodeURIComponent( new XMLSerializer().serializeToString(svgNode)); document.body.append("XMLSerializer:", serializerImg, document.createElement("br"));
 img, svg { vertical-align: top }
 svg:<svg><rect width=30 height=30 /></svg><br>

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!