3 Stimmen

Wenn Sie den XPath-Bindungsausdruck verwenden, können Sie InnerXml anstelle von InnerText zurückerhalten?

Ich binde ein Steuerelement an ein XmlDocument und verwende den Bindungsausdruck "XPath", um die Daten auszugeben:

<div class="Bio"><%# XPath("Biography") %></div>

Dies gibt jedoch die Eigenschaft InnerText des Elements "Biography" zurück, nicht die Eigenschaft InnerXml. Das bedeutet, dass alle inneren Tags entfernt werden, was ich nicht möchte.

Ich schaute durch das XPathBinder-Objekt, aber ich kann nicht finden, irgendwie zu bekommen, um InnerXml statt InnerText zurückgeben

0voto

Binding.XPath gibt einen Wert und keinen Knoten zurück, so dass Sie die InnerXml auf diese Weise nicht erhalten können. Können Sie eine Methode definieren, die stattdessen SelectSingleNode(...).InnerXml zurückgibt? Wenn Sie eine Methode definieren wie

public string GetInnerXml(object o)
{
    string val = String.Empty;
    XmlNode parent = o as XmlNode;
    XmlNode child = parent.SelectSingleNode("bob/fred");
    if (child != null)
        val = child.InnerXml;
    return val;
}

und rufen Sie diese dann von Ihrem Bindungsausdruck aus auf, das sollte reichen. Code sollte korrekt sein, aber ich habe es nicht getestet, so kann es Fehler sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X