In einem XmlDocument, wenn Sie später schreiben und ändern, ist es möglich, die selbstschließenden Tags (d. H. />
) für ein bestimmtes Element zu entfernen.Entfernen selbstschließende Tags (z. B. />) in einem XmlDocument
Zum Beispiel: Änderung
<img />
oder<img></img>
-<img>
.<br />
bis<br>
.
Warum fragen Sie? Ich versuche, das HTML für Word 2007 Schema zu entsprechen; Der resultierende HTML-Code wird in Microsoft Outlook 2007 oder höher angezeigt.
Nach dem Lesen eines anderen StackOverflow question, habe ich versucht, die IsEmpty
Eigenschaft zu false
wie so zu setzen.
var imgElements = finalHtmlDoc.SelectNodes("//*[local-name()=\"img\"]").OfType<XmlElement>();
foreach (var element in imgElements)
{
element.IsEmpty = false;
}
jedoch, die in <img />
führte <img></img>
werden. Als Hack habe ich auch versucht, die OuterXml
Eigenschaft direkt zu ändern, aber das funktioniert nicht (habe es nicht erwartet).
Frage
Können Sie die selbstschließenden Tags aus XmlDocument
entfernen? I ehrlich glaube nicht, es gibt, als wäre es dann ungültig Xml (kein schließendes Tag), aber dachte, ich würde die Frage aus der Gemeinschaft werfen.
Update:
ich das HTML-String zur Festsetzung endete, nachdem sie von den XmlDocument
Export eines regulären Ausdruck (geschrieben in den wunderbaren RegexBuddy). viele Fehler aus der Validierung Pass
var fixHtmlRegex = new Regex("<(?<tag>meta|img|br)(?<attributes>.*?)/>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
return fixHtmlRegex.Replace(htmlStringBuilder.ToString(), "<$1$2>");
Es gelöscht und mir erlauben, auf die wirklichen Kompatibilitätsprobleme zu konzentrieren.
Mit '' und ''
arbeitet in Office 2007/10 in Ordnung, gibt es einen anderen Grund zu HTML4 Stil zum Umwandeln Stichworte? – Matthew
Betrachten Sie die Antworten, die Sie kennen, Sie können es nicht über XMLDocument tun. Aber wenn Sie das wirklich wollen, warum versuchen Sie nicht, eine Textdatei mit String-Operationen für XML zu erstellen, so können Sie Ihre Aufgabe erfüllen – Habib
@Matthew: Ja, sie tun; Der einzige Grund war, gegen [HTML für Word 2007] (http://msdn.microsoft.com/en-us/library/aa338201%28office.12%29.aspx) Schema zu validieren, so dass zu einem späteren Zeitpunkt die Konvertierung könnte Einheit getestet werden. – Dennis