Ich habe mit XML-Daten zu tun, die manchmal das Unescaped Ampersand enthalten, und ich kann den Produzenten nicht dazu bringen, entweder zu & zu entkommen oder es in einen CDATA-Abschnitt zu stecken.Ein regulärer Ausdruck, um XML zu bereinigen
Jetzt bin ich auf der Suche nach einem regulären Ausdruck zu ersetzen & mit & Ampere; wenn es nicht Teil einer Entität ist. Etwas wie folgt aus: (?! (Amp | apos | quot | lt | gt);) &
Leider nur meine Programmierumgebung unterstützen "erweiterte POSIX 1003.2 reguläre Ausdrücke" (siehe http://www.kernel.org/doc/man-pages/online/pages/man7/regex.7.html), die scheinen, die nicht Betreiber fehlt "!" benötigt hier.
Irgendwelche Ideen, wie man den notwendigen regelmäßigen Ausdruck fertigt?
die korrekte "XML-ish" -Antwort wäre, es durch einen Validator auszuführen und als "nicht wohlgeformtes XML" abzulehnen. Es ist eine Schande, dass die Designer von XML nicht berücksichtigt haben, dass wir in der realen Welt manchmal mit schlechtem Input fertig werden und damit arbeiten müssen. – Spudley
@Spudley: Ich führe die XML-Datei tatsächlich über einen Validator. So habe ich den missgebildeten Teil bemerkt. Leider ist es ein Microsoft-Produkt, das das ungültige XML produziert und zu ihnen "Standard" zu bedeuten scheint "optional". –
hehe. Microsoft eh? Diese Abbildungen. (Da die kommerzielle Unterstützung der Grund ist, warum das Management oft Microsoft kauft, frage ich mich, ob MS bereit wäre, es für Sie zu reparieren? Natürlich nicht. – Spudley