Ho guardato in giro un sacco, ma non sono stati in grado di trovare un built-in metodo Netto che sfuggirà solo caratteri XML speciali: <
, >
, &
, '
e "
se non è un tag.condizionalmente sfuggire caratteri speciali XML
Per esempio, prendete il seguente testo:
Test& <b>bold</b> <i>italic</i> <<Tag index="0" />
mi voglio che sia convertito in:
Test& <b>bold</b> <i>italic</i> <<Tag index="0" />
Si noti che i tag non sono sfuggiti. Fondamentalmente ho bisogno di impostare questo valore su un InnerXML
di un XmlElement
e, di conseguenza, questi tag devono essere conservati.
Ho cercato di implementare il mio parser e di usare uno StringBuilder
per ottimizzarlo il più possibile ma può diventare piuttosto sgradevole.
Conosco anche i tag che sono accettabili e che possono semplificare le cose (solo: br, b, i, u, lampeggia, flash, Tag). Inoltre, questi tag possono essere tag di chiusura di auto
(e.g. <u />)
o container tag
(e.g. <u>...</u>)
HTML non è XML ... come 'foo bar davvero
'. Ti divertirai moltissimo se lo vuoi fare da solo. Come opzione, considera HtmlAgilityPack per analizzare l'HTML in una struttura ragionevole e inserisci tutti i nodi con attenzione in XML ... –
Niente di ciò che potresti fare semplicemente gestirà correttamente 'Test Value è < 3 but > 1'. – Bobson
@Bobson '<3' non è un tag di inizio valido, quindi potresti capirlo. Ma il tuo punto è ancora valido, '<' and '>' sono escapato per rimuovere l'ambiguità nell'analisi. Ci saranno casi in cui qualsiasi parser ragionevole sceglierebbe un percorso, mentre potresti averne voluto un altro. – climbage