我正在使用WPF编写RSS提要,其中一个提要是由wordpress创建的自定义提要。它有一些嵌套在我想要的<content:encoded>
标签内的数据,但我无法做到。我试图将这些数据绑定到我的一些wpf控件。
一些代码:
<XmlDataProvider x:Key="" XPath="//item" Source="" />
然后我有一个列表框,其中源绑定到此静态资源, 接下来我有一个模板,其中包含许多绑定到xml数据的控件。
我可以从xml文件中提取某些项目,即
<TextBlock Text="{Binding XPath="title"} />
工作正常。但现在我想访问嵌套在<img src="....png">
内的<content:encoded>
。像Source={Binding XPath="content-encoded/img/@src"}
这样的XPath语法
不起作用。
如果您对如何获取XML文件的这一部分有任何见解,那就太棒了!
答案 0 :(得分:0)
content
是一个需要mapped的XML命名空间,这里是我写的一些RSS阅读器示例中的一个例子:
<Window.Resources>
<s:Uri x:Key="FeedUri">
http://backend.deviantart.com/rss.xml?q=boost%3Apopular+max_age%3A8h&type=deviation
</s:Uri>
<XmlNamespaceMappingCollection x:Key="NsMapping">
<XmlNamespaceMapping Prefix="media" Uri="http://search.yahoo.com/mrss/"/> <!-- Slash at the end on dA for some reason... -->
<XmlNamespaceMapping Prefix="atom" Uri="http://www.w3.org/2005/Atom"/>
</XmlNamespaceMappingCollection>
<XmlDataProvider x:Key="Data" Source="{StaticResource FeedUri}"
XmlNamespaceManager="{StaticResource NsMapping}"/>
</Window.Resources>
<!-- media and atom being used in a binding: -->
<Image Source="{Binding XPath=media:thumbnail/@url}" ToolTip="{Binding XPath=title}"/>
<Image Source="{Binding XPath=/rss/channel/atom:icon}" .../>
因此,对于content
的映射,应该是:{Binding XPath="content:encoded/img/@src"}