使用XPath绑定表达式时,是否可以返回InnerXml而不是InnerText?

时间:2009-02-23 23:20:33

标签: c# asp.net xml data-binding

我将控件绑定到XmlDocument并使用“XPath”绑定表达式输出数据:

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

但是,这会返回“Biography”元素的InnerText属性,而不是InnerXml。这意味着它会从中剥离所有内部标签,这不是我想要的。

我查看了XPathBinder对象,但无论如何我都找不到它来返回InnerXml而不是InnerText

1 个答案:

答案 0 :(得分:0)

Binding.XPath返回一个值而不是一个节点,因此您将无法以这种方式获取InnerXml。你能定义一个返回SelectSingleNode(...)的方法。而不是InnerXml?如果您定义了一个方法,如

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;
}

然后从你的绑定表达式调用它,这应该做的伎俩。代码应该是正确的,但我没有对其进行测试,因此可能存在错误。