「=」記号で区切られたキーと値のペアを含むリスト ボックス コントロールがあります。
例:
暑い=寒い
速い=遅い
高=低
青=赤
ユーザーがこのリストを XML でエクスポートできるようにするボタンもあります。どうすれば簡単にできますか?
XML ファイルを作成するには、どのような形式にする必要がありますか?
「=」記号で区切られたキーと値のペアを含むリスト ボックス コントロールがあります。
例:
暑い=寒い
速い=遅い
高=低
青=赤
ユーザーがこのリストを XML でエクスポートできるようにするボタンもあります。どうすれば簡単にできますか?
XML ファイルを作成するには、どのような形式にする必要がありますか?
LINQ を使用できます。
var xml = new XElement("Items",
from s in strings
let parts = s.Split('=')
select new XElement("Item",
new XAttribute("Key", parts[0]),
parts[1]
)
);
次のように、LINQ を使用して項目を XML にエクスポートできます。
<asp:ListBox ID="listBox" runat="server">
<asp:ListItem Text="Joe" Value="1" />
<asp:ListItem Text="Jay" value="2" />
<asp:ListItem Text="Jim" Value="3" Selected="true" />
<asp:ListItem Text="Jen" Value="4" />
</asp:ListBox>
EDIT : 古いメソッドを LINQ to XML を使用するメソッドに置き換えました。
public XDocument ParseListBoxToXml()
{
//build an xml document from the data in the listbox
XDocument lstDoc = new XDocument(
new XElement("listBox",
new XAttribute("selectedValue", listBox.SelectedValue ?? String.Empty), new XAttribute("selectedIndex", listBox.SelectedIndex), new XAttribute("itemCount", listBox.Items.Count),
new XElement("items",
from ListItem item in listBox.Items
select new XElement("item", new XAttribute("text", item.Text), new XAttribute("value", item.Value), new XAttribute("selected", item.Selected))
)
)
);
//return the xml document
return lstDoc;
}
上記のメソッドからの XML 出力は次のとおりです。
<listBox selectedValue="3" selectedIndex="2" itemCount="4">
<items>
<item Text="Joe" Value="1" Selected="false" />
<item Text="Jay" Value="2" Selected="false" />
<item Text="Jim" Value="3" Selected="true" />
<item Text="Jen" Value="4" Selected="false" />
</items>
</listBox>
XML ファイルの書き方については、このチュートリアルをご覧ください。
またはXElement
、SLaks の提案に従って使用し、その Save() メソッドを使用して Xml-File/-Data を取得します。そのメソッドを使用して、応答ストリームに直接書き込むこともできます。