C#-如何从xaml resourcedictionary格式的字符串中获取键和值?

C#-如何从xaml resourcedictionary格式的字符串中获取键和值?,c#,xml,wpf,xaml,C#,Xml,Wpf,Xaml,我以binaryreader的形式读取xaml文件,并将其作为字符串 以及 Xaml文件是一个xml文件。因此,您可以轻松地使用LinqToXml选择节点和值。Xaml文件是一个xml文件。因此,您可以轻松地使用LinqToXml选择节点和值。我逐行读取文件,并使用正则表达式将其提取出来 StreamReader reader = new StreamReader(file.InputStream); string textLine = reader.ReadLine();

我以binaryreader的形式读取xaml文件,并将其作为字符串

以及


Xaml
文件是一个
xml
文件。因此,您可以轻松地使用
LinqToXml
选择节点和值。

Xaml
文件是一个
xml
文件。因此,您可以轻松地使用
LinqToXml
选择节点和值。

我逐行读取文件,并使用正则表达式将其提取出来

    StreamReader reader = new StreamReader(file.InputStream);
    string textLine = reader.ReadLine();
    string key = GetKeyStringFromXaml(textLine);
    string val = GetValStringFromXaml(textLine);
    public string GetKeyStringFromXaml(string textLine) {
        Regex regex = new Regex("<System:String x:Key=\"(.*)\">(.*)</System:String>");
        var v = regex.Match(textLine);
        return v.Groups[1].ToString();
    }
    public string GetValStringFromXaml(string textLine) {
        Regex regex = new Regex("<System:String x:Key=\"(.*)\">(.*)</System:String>");
        var v = regex.Match(textLine);
        return v.Groups[2].ToString();
    }
StreamReader=newstreamreader(file.InputStream);
string textLine=reader.ReadLine();
字符串键=GetKeyStringFromXaml(文本行);
字符串val=GetValStringFromXaml(文本行);
公共字符串GetKeyStringFromXaml(字符串文本行){
正则表达式正则表达式=新正则表达式((*);
var v=正则表达式匹配(文本行);
返回v.Groups[1].ToString();
}
公共字符串GetValStringFromXaml(字符串文本行){
正则表达式正则表达式=新正则表达式((*);
var v=正则表达式匹配(文本行);
返回v.Groups[2].ToString();
}

我逐行读取文件,并使用正则表达式提取它

    StreamReader reader = new StreamReader(file.InputStream);
    string textLine = reader.ReadLine();
    string key = GetKeyStringFromXaml(textLine);
    string val = GetValStringFromXaml(textLine);
    public string GetKeyStringFromXaml(string textLine) {
        Regex regex = new Regex("<System:String x:Key=\"(.*)\">(.*)</System:String>");
        var v = regex.Match(textLine);
        return v.Groups[1].ToString();
    }
    public string GetValStringFromXaml(string textLine) {
        Regex regex = new Regex("<System:String x:Key=\"(.*)\">(.*)</System:String>");
        var v = regex.Match(textLine);
        return v.Groups[2].ToString();
    }
StreamReader=newstreamreader(file.InputStream);
string textLine=reader.ReadLine();
字符串键=GetKeyStringFromXaml(文本行);
字符串val=GetValStringFromXaml(文本行);
公共字符串GetKeyStringFromXaml(字符串文本行){
正则表达式正则表达式=新正则表达式((*);
var v=正则表达式匹配(文本行);
返回v.Groups[1].ToString();
}
公共字符串GetValStringFromXaml(字符串文本行){
正则表达式正则表达式=新正则表达式((*);
var v=正则表达式匹配(文本行);
返回v.Groups[2].ToString();
}

更好地使用。您还没有发布任何示例XAML文件。但假设您确实有一个作为资源字典的XAML文件,您可以使用@Clemens所说的
XamlReader
,它将返回已解析的
ResourceDictionary
对象,然后您可以使用
ResourceDictionary
对象的成员来检索键和值。最好使用。您还没有发布任何示例XAML文件。但假设您确实有一个作为资源字典的XAML文件,您可以使用@Clemens所说的
XamlReader
,它将返回已解析的
ResourceDictionary
对象,然后您可以使用
ResourceDictionary
对象的成员来检索键和值。
    StreamReader reader = new StreamReader(file.InputStream);
    string textLine = reader.ReadLine();
    string key = GetKeyStringFromXaml(textLine);
    string val = GetValStringFromXaml(textLine);
    public string GetKeyStringFromXaml(string textLine) {
        Regex regex = new Regex("<System:String x:Key=\"(.*)\">(.*)</System:String>");
        var v = regex.Match(textLine);
        return v.Groups[1].ToString();
    }
    public string GetValStringFromXaml(string textLine) {
        Regex regex = new Regex("<System:String x:Key=\"(.*)\">(.*)</System:String>");
        var v = regex.Match(textLine);
        return v.Groups[2].ToString();
    }