我如何将我的xml过滤到搜索值?

时间:2013-10-31 09:27:08

标签: c# asp.net xml linq-to-xml

嗨我想要为此翻译我的网站我使用Xml文件并使用Linq to xml我想获取值。这是我的xml例如:

<?xml version="1.0" encoding="utf-8"?>

<Languages>
  <values id="_hallo">
    <value value="DE" display="Hallo"></value>
    <value value="EN" display="Hello"></value>
    <value value="CS" display="Tschechisch"></value>
    <value value="ES" display="Spanisch"></value>
    <value value="ZH" display="德國的"></value>
  </values>
</Languages>

这是我的c#:

private void SiteTranslate(string language)
        {
            string BrowserLanguage = Request.UserLanguages[0].ToString().Substring(0, 2).ToUpper(); // here I get "DE" or "EN" etc..

            string btnadd_id = "_hallo"; // for example

            XDocument x = XDocument.Load(Server.MapPath(@"~\App_Data\SiteLanguage.xml"));


            string val = from tep in x.Descendants("values").Where(el => el.Attribute("id").Value == btnadd_id).
                             Descendants("value").
                             Where(l => l.Attribute("value").Value == language).Select //?????? :( 

            BtnAdd.Text = val;
        }

1 个答案:

答案 0 :(得分:1)

这是一个简单的“获得唯一元素”的问题:

 string val = x.Descendants("values")
       .Where(el => el.Attribute("id").Value == btnadd_id)
       .Elements("value")
       .Where(l => l.Attribute("value").Value == language)
       .SingleOrDefault()
       .Attribute("display").Value;