1

こんにちは、linq to xml について質問があります ...

Title 値を持つ xml ファイルがあります。

私のxml:

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

<Titles>
  <values id="de">
    <value value="Herr" display="Herr"></value>
    <value value="Frau" display="Frau"></value>
  </values>
  <values id="cs">
    <value value="Herr" display="Pan"></value>
    <value value="Frau" display="Paní"></value>
  </values>
  <values id="en">
    <value value="Herr" display="Mr."></value>
    <value value="Frau" display="Mrs."></value>
  </values>
  <values id="es">
    <value value="Herr" display="Sr."></value>
    <value value="Frau" display="Sra."></value>
  </values>
  <values id="zh">
    <value value="Herr" display="先生"></value>
    <value value="Frau" display="女士"></value>
  </values>
</Titles>

そして私はDropDownListを持っています:

<td><asp:DropDownList ID="drp_GuestListViewAddDialog_GuestTitle" runat="server"></asp:DropDownList></td>

ここに私のC#コードがあります:

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

                string data = (from item in x.Elements("Titles").Elements("values") where item.Attribute("id").Value == "de" select item.Attribute("display").Value).First();

アップデート:

たとえば、id = "de" が必要な場合は、これが必要です

<values id="de">
    <value value="Herr" display="Herr"></value>
    <value value="Frau" display="Frau"></value>
  </values>
4

2 に答える 2

1

編集:これは機能します...

var x = XDocument.Load(@"~\App_Data\DropDown\Title.xml");
var list = x.Descendants("values")
    .Where(el => el.Attribute("id").Value == "de")
    .Descendants("value")
    .Select(el => new
    {
        value = el.Attribute("value").Value,
        display = el.Attribute("display").Value
    )
    .ToList();

drp_GuestListViewAddDialog_GuestTitle.DataValueField = "value";
drp_GuestListViewAddDialog_GuestTitle.DataTextField = "display";
drp_GuestListViewAddDialog_GuestTitle.DataSource = list;
drp_GuestListViewAddDialog_GuestTitle.DataBind();
于 2013-10-29T13:28:46.793 に答える
1
var results = doc.Descendants("values")
         .Where(e => (string)e.Attribute("id") == "zh")
         .SelectMany(e => e.Elements("value"))
         .Select(v => new { Value = v.Attribute("value").Value, Text = v.Attribute("display").Value })
         .ToList();

次にバインドします。

 drp_GuestListViewAddDialog_GuestTitle.Enabled = true;
 drp_GuestListViewAddDialog_GuestTitle.DataSource = result;
 drp_GuestListViewAddDialog_GuestTitle.DataBind();

申し訳ありませんが、コンパイルできるかどうかを確認することはできません。ここでウィングしています。

于 2013-10-29T13:43:22.717 に答える