Ist es möglich, Leerräume innerhalb von Tags zu erhalten?"whitespace" innerhalb von Tags beibehalten
Ich greife XML-Knoten (XHTML-Inhalt) in einem XPathDocument mit einem XPathNodeIterator.
Einige der Tags in den Knoten sind nicht "strikt" XHTML (und dies ist in der endgültigen Ausgabe des Werkzeugs erlaubt). Einige Knoten enthalten Image-Tags ohne das nachfolgende Leerzeichen.
<img src="filename.png" alt="description"/>
Wenn ich die resultierenden Knoten speichern, werden sie schön mit dem nachgestellten Leerzeichen formatiert.
<img src="filename.png" alt="description" />
Ist es möglich, den Inhalt des Knotens zu erhalten, unter Beibehaltung der In-Tag-Abstand (in diesem Fall nicht den Raum)? Ich dachte über etwas ähnlich wie PreserveWhitespace.
Eine vereinfachte Probe des Codes verwendet
xmlDoc = New XPathDocument(fileIn, xmlSpace.Preserve)
xmlNav = xmlDoc.CreateNavigator()
Dim xmlNode As XPathNodeIterator
Dim ns As XmlNamespaceManager = new XmlNamespaceManager(xmlNav.NameTable)
xmlNode = xmlNav.Select("/export/contents[target[@translate='True']]")
While xmlNode.MoveNext()
target = xmlNode.Current.selectSingleNode("target").InnerXML
' ... '
End While
Einige Hintergrundinformationen: Als Marc dort darauf hingewiesen, ist kein Unterschied in der Bedeutung der resultierenden XML in Bezug auf die nicht-signifikanten Leerzeichen innerhalb der Tags (oder die Tag-Reihenfolge für diese Angelegenheit).
Das Hauptproblem, auf das ich stoße, ist, dass die Daten von einem CMS-System stammen, das sowohl neue als auch alte Inhalte verarbeitet. Der Inhaltserstellungsprozess wurde erst vor kurzem in XML/XHTML verschoben, so dass noch immer nicht strenger XHTML-Inhalt im System vorhanden ist.
Die verwendeten QA-Tools sind immer noch hauptsächlich textbasiert und erstellen für HTML und werden von einer anderen Abteilung ausgeführt (der QA-Prozess muss angepasst/aktualisiert werden). Aus diesem Grund möchte ich die Tags so nah wie möglich am ursprünglichen Format halten.
als vorübergehende Behelfslösung fügte ich einige regulären Ausdrücke (neue und frühere Versionen des Knoten Vergleich) zu suchen und zu beheben, die „Unterschiede“ eingeführt, indem die XML mit .NET Parsen
Ich bearbeite den Inhalt lieber nicht, also ist das Hinzufügen von xml: whitespace zum Inhalt nicht wirklich eine Option. – barry
Können Sie uns ein Codebeispiel zeigen, das zeigt, wie Sie auf die XML-Knoten zugreifen und diese ausgeben? – Cerebrus
Ich fügte Beispielcode – barry