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

177
Views
Caracteres de escape en nodos xml

Tengo un xml como este en la variable de cadena (cargar desde archivo)

 <Data> <Name>Test & < test> </Name> </Data>

cuando intento cargar este xml, obtuve la excepción "se produjo un error al analizar el nodo". Creo que esto se debe a & en la etiqueta de nombre. He buscado en Internet, pero todas las soluciones (por ejemplo SecurityElement.Escape ) escapan de los elementos xml principales también como mayor que gt y menor que lt y solo quiero reemplazar & en mi caso. Puedo iterar a través de xml y reemplazar solo la parte de datos, pero ¿hay alguna forma más corta?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

AngleSharp tiene un analizador "XML" de corrección de errores que funciona más como un analizador HTML5 o de sopa de etiquetas que intenta corregir y corregir dichos errores de marcado. para su muestra

 using System; using AngleSharp.Xml; using AngleSharp.Xml.Parser; namespace AngleSharpMalFormedXmlTest1 { class Program { static void Main(string[] args) { var malFormedXml = @"<Data> <Name>Test & < test> </Name> </Data>"; var doc = new XmlParser(new XmlParserOptions() { IsSuppressingErrors = true }).ParseDocument(malFormedXml); Console.WriteLine(doc.ToMarkup()); } } }

yo obtengo

 <Data> <Name>Test &amp;&lt; test&gt; </Name> </Data>

Pero una vez que abre su entrada a este tipo de XML mal formado, puede encontrarse fácilmente con conceptos erróneos e incompatibilidades o dependencia de herramientas que se pretendía evitar con el uso de un estándar W3C como XML.

over 4 years ago · Santiago Trujillo Report

0

Como no tiene control sobre la fuente, puede probar algunas expresiones regulares para convertirlo en un xml válido:

 string xml = @"<Data> <Name>Test & test&amp; &1 &lt;aaa &</Name> </Data>"; xml = Regex.Replace(xml,@"&(?!\w+;)","&amp;");

esto regresará

 <Data> <Name>Test &amp; test&amp; &amp;1 &lt;aaa &amp;</Name> </Data>
over 4 years ago · Santiago Trujillo Report

0

El XML presentado no está bien formado.

Puede usar la sección CData para hacer que su XML esté bien formado.

  • Cada <Name> debe convertirse en <Name><![CDATA[
  • Cada </Name> debe convertirse en ]]></Name>

XML bien formado

 <Data> <Name><![CDATA[Test & < test> ]]></Name> </Data>
over 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!