将cdata元素绑定到文本框c#

时间:2010-09-15 08:31:01

标签: c# xml binding

我正在尝试将CData元素绑定到代码中的文本框。 xml结构是这样的:

<Music>
<Category>
<Albums>
 <![CDATA[
    <AlbumData>
      <Album>
          <id>A1</id>
          <Artist>artist 1</Artist>
      </Album>
      <Album>
          <id>A2</id>
          <Artist>artist 2</Artist>
      </Album>

    </AlbumData>
  ]]>
   </Albums>

  </Category>

 </Music>

如何将艺术家绑定到文本框?我想让它成为一种双向约束。

1 个答案:

答案 0 :(得分:1)

要获得客户已将某些疯狂原因嵌入CDATA部分的XML,您可以执行以下操作:

XDocument xd = XDocument.Load("music.xml")
XElement albumData = XElement.Parse(xd.Root.Element("Category").Element("Albums").Value);

从那里你可以在XmlDataProvider中使用xml并使用XPath来获取艺术家的名字并将其显示在TextBox中。

我认为在您的情况下(希望有双向访问)从长远来看,创建支持类(模型和视图模型)然后从提取的XML创建它们将更容易。从那些,而不是XmlDataProvider,您将窗口的DataContext设置为viewmodel。