如何解析XAML文件?

时间:2009-07-27 08:20:19

标签: c#

我有一个xml文件,其中包含xaml文件的路径(contins图像文件信息),现在我需要解析xml文件并获取xaml中的图像并以窗口形式显示它。

有些博比可以帮我解决这个问题吗?

3 个答案:

答案 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有一些很好的代码示例可以帮助你。