Concetto per distinguere tra tag HTML e parentesi angolari

2

Ho un problema con il requisito di un cliente che vuole importare una stringa di testo html all'interno di un documento csv.

Ad esempio, una versione sterilizzata di una linea di importazione:

"IDNumber,TextIdentifierNumber,<p><strong>Hello, this text is **>** this text. 32 < 64</strong></p>"

Il problema qui non sta importando questo testo, ma parentesi angolari. Questi sono separati dalla loro pratica commerciale quotidiana e sono necessari per indicare una denominazione minore o maggiore.

Sfondo: Al momento il nostro client utilizza un'applicazione Web .NET e un'applicazione di caricamento batch (console), entrambi scritti in Visual Basic .NET 4.0. La nostra applicazione web utilizza un editor WYSIWYG per l'immissione di tale testo e gestiamo tali parentesi angolari in base alle entità e alla codifica indicate.

Il nostro problema è distinguere una parentesi angolare tra una stringa di input ricca di HTML.

Cosa abbiamo fatto fino ad oggi:

Utilizziamo HTMLAgilityPack per analizzare rigorosamente l'HTML e eliminare i tag HTML che non sono consentiti. Sfortunatamente, HTMLAgilityPack rimuove questa parentesi angolare e qualsiasi testo che potrebbe seguire un potenziale tag di chiusura. Questo danneggia male la stringa HTML e causa problemi nei nostri rapporti.

Abbiamo dato il via ad alcune opzioni, come la sostituzione del testo (invio di [LESSTHAN]) da parte del nostro cliente e quindi il nostro codice lo converte in direzione della parentesi angolare corretta. Sfortunatamente, questo sicuramente non funzionerà a causa dei dati di origine provenienti da un altro sistema.

    
posta EightyFour 27.01.2016 - 21:50
fonte

2 risposte

1

So che è passato un po 'di tempo da quando ho fatto questa domanda, ma a marzo di quest'anno abbiamo trovato una soluzione a questo problema. Sto solo ora riempiendo tutti voi.

Il nostro codice C # gestisce questo senerio usando un semplice schema REGEX diviso in 4 fasi. 2 maniglie per aprire le etichette e 2 fasi per maneggiare le etichette di chiusura. Questa espressione regolare trova tutte le parentesi angolari associate a un elenco noto di nomi di tag HTML che il nostro cliente utilizza e sostituisce normalmente per i caratteri non codificabili. Ciò che rimane sono le parentesi angolari nel testo. Quelli sono codificati e la sostituzione è invertita, rendendo html e parentesi angolari correttamente codificati quando salvati in un database.

Domande o commenti benvenuti.

    
risposta data 28.07.2016 - 12:54
fonte
1

Bene, il tuo cliente non desidera importare il testo html. Può pensare che voglia importare l'html, ma non è ciò che vuole realmente. il testo html non può contenere le lettere "'& < & gt ;, per una buona ragione. Quindi il testo che hai mostrato non è solo HTML.

Poiché gli strumenti html non saranno in grado di gestirli, per prima cosa dovrei avere un passaggio manuale dove guardi < e > simboli, decidi quali sono parte dei tag e sostituisci tutti gli altri con < o & gt ;.

    
risposta data 28.01.2016 - 02:02
fonte

Leggi altre domande sui tag