我有一个xml文件,其中包含xaml文件的路径(contins图像文件信息),现在我需要解析xml文件并获取xaml中的图像并以窗口形式显示它。
有些博比可以帮我解决这个问题吗?
答案 0 :(得分:2)
如果你有一个像这样的xml文件(或字符串):
<ImageData>
<Path>Res\image.xaml</Path>
</ImageData>
...和文件“Res \ image.xaml”中的xaml字典,如下所示:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Image x:Key="imageKey" Source="img.jpg"/>
</ResourceDictionary>
...您可以像这样获取Image元素的Source路径(使用LINQ to XML):
private string GetImagePath(string xmlString)
{
XElement xmlData = XElement.Parse(xmlString);
XElement pathElement = xmlData.XPathSelectElement("ImageData/Path");
if (pathElement == null) return null;
string xamlPath = pathElement.Value;
XElement xamlData = XElement.Load(xamlPath);
XElement imageElement = xamlData.XPathSelectElement("//Image");
if (imageElement == null) return null;
XAttribute pathAttribute = imageElement.Attribute("Source");
return pathAttribute == null ? null : pathAttribute.Value;
}
当然,这是一个关于如何做到这一点的粗略指南,当然你会在经过一些实验后调整它,以适合你的模型。
答案 1 :(得分:1)
XAML是XML,因此解析为XML并使用任何这些方法来提取所需的数据。
答案 2 :(得分:0)
您需要更加具体地了解图像文件信息的格式,但如果它只是作为文件路径存储在XAML中,那么使用.NET的XMLTextReader应该可以解决问题。 c-sharpcorner.com有一些很好的代码示例可以帮助你。