我想弄清楚如何將具有相同名稱但不同值的XML節點分組。如何分組同名的XML節點?
我使用的是回報,看起來像這樣的XmlElement的Web服務:
<Items>
<Item>
<Name name="Name">Item 1</Name>
<Description name="Description">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</Description>
<AssociatedItems name="Associated Items">Item 2</AssociatedItems>
<AssociatedItems name="Associated Items">Item 3</AssociatedItems>
<AssociatedItems name="Associated Items">Item 4</AssociatedItems>
<AssociatedItems name="Associated Items">Item 5</AssociatedItems>
</Item>
</Items>
我將每個節點插入HTML標籤
protected void lnkItem_Click(object sender, EventArgs e)
{
LinkButton link = (LinkButton)sender;
GridViewRow row = (GridViewRow)link.Parent.Parent;
string id = gv.DataKeys[row.RowIndex]["id"].ToString();
PublicApiAsmxServiceSoapClient service = new PublicApiAsmxServiceSoapClient("PublicApiAsmxServiceSoap", WEB_SERVICE_URL);
XmlElement xml = service.ItemGetAsXml(id);
XElement nodes = XElement.Parse(xml.InnerXml);
foreach (var node in nodes.Elements())
{
InsertHTML(node);
}
}
private void InsertHTML(XElement node)
{
if (node.Value == string.Empty)
return;
pnl.ContentTemplateContainer.Controls.Add(new LiteralControl(String.Format("<h3>{0}</h3>", node.Attribute("name").Value)));
pnl.ContentTemplateContainer.Controls.Add(new LiteralControl(String.Format("<p>{0}</p>", node.Value)));
}
我的代碼,現在,在HTML輸出將是:
<h3>Name</h3>
<p>Item 1</p>
<h3>Description</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<h3>Associated Items</h3>
<p>Item 2</p>
<h3>Associated Items</h3>
<p>Item 3</p>
<h3>Associated Items</h3>
<p>Item 4</p>
<h3>Associated Items</h3>
<p>Item 5</p>
有沒有辦法將同一個節點組成一個無序列表?可能是這樣的:
<h3>Name</h3>
<p>Item 1</p>
<h3>Description</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<h3>Associated Items</h3>
<ul>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
謝謝! (請當心)
ps 重複的子節點不僅限於AssociatedTerms。有可能有更多的同名重複的子節點。
這是非常好的[鏈接](HTTP ://www.silverlight.net/learn/data-networking/linq/linq-to-xml-%28silverlight-quickstart%29)。使用LINQ to XML,你可以完成你想要的。尋找在這個鏈接中按類別分組一個RSS XML樹 – 2012-07-26 04:47:31