我有一个这样的 XML 文档:
<Columns>
<Column>
<Name>A</Name>
<Width>100</Width>
</Column>
</Columns>
<Columns>
</Columns>
<Columns>
<Column>
<Name>C</Name>
<Width>300</Width>
</Column>
<Column>
<Name>C1</Name>
<Width>310</Width>
</Column>
</Columns>
我正在获取他们的名称和宽度文本并将它们存储在一个列表中。
var man = new XmlNamespaceManager(xdoc.NameTable);
man.AddNamespace("ns", "http://schemas.microsoft.com/project");
List <string> lstText = new List<string>();
List <List<string>> lst = new List<List<string>>();
XmlNodeList xnList = xdoc.SelectNodes("/ns:Columns/ns:Column", man);
foreach (XmlNode xn in xnList)
{
lstText.Add(xn["Name"].InnerText));
lstText.Add(xn["Width"].InnerText));
}
lst.Add(lstText);
所以,我只能得到这些值:A 和 100,C 和 300。我也想得到 C1 和 310。我怎样才能得到它们?
编辑:某些列没有列,某些列有 1 个或多个列。在这个示例中,我的 List 有 3 个元素:
lst[0][0] = {A, 100}
lst[1][0] = null
lst[2][0] = {C, 300}, lst[2][1] = {C1, 310}