你好,
例如我有这个 xml:
<books>
<book1 name="Cosmic">
<attribute value="good"/>
</book1>
</books>
如何在列表框控件中逐行显示它,在这种情况下最终结果将是一个包含 5 行的列表框?
此时此刻,我正在使用 LINQ to XML 来处理 XML,如下所示:
foreach (XElement element in document.DescendantNodes())
{
MyListBox.Items.Add(element.ToString());
}
但最终结果将每个 xml 节点放在一个列表框项中(包括子节点)。
有谁知道如何将 xml 逐行放入列表框项目中?
谢谢。
杰夫
最佳答案
一个简单的解决方案将使用如下递归函数:
public void FillListBox(ListBox listBox, XElement xml)
{
listBox.Items.Add("<" + xml.Name + ">");
foreach (XNode node in xml.Nodes())
{
if (node is XElement)
// sub-tag
FillListBox(listBox, (XElement) node);
else
// piece of text
listBox.Items.Add(node.ToString());
}
listBox.Items.Add("</" + xml.Name + ">");
}
当然,这个只会打印标签名称(例如 <book1>
在你的例子中)而不是属性( name="Cosmic"
等)。我相信你可以自己把它们放进去。
关于c# - 使用 C#,如何逐行显示 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4194960/