作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个简单的 XML 文件,我需要从中提取 2 个元素的内部文本并将它们传递给一个方法,该方法在 ListView 的 2 列中列出文本。我让它工作,以便它从一个元素中提取文本,但我很难理解我如何让它用第二个元素的数据填充第二列。
XML 文件:
<?xml version="1.0"?>
<Projects>
<Project>
<ProjectName>Test project1</ProjectName>
<ProjectType>MSWORD</ProjectType>
</Project>
<Project>
<ProjectName>MyNewProject</ProjectName>
<ProjectType>SGML</ProjectType>
</Project>
<Project>
<ProjectName>NewProject3</ProjectName>
<ProjectType>XML</ProjectType>
</Project>
<Project>
<ProjectName>Jake'sProject</ProjectName>
<ProjectType>SGML</ProjectType>
</Project>
<Project>
<ProjectName>P3_test</ProjectName>
<ProjectType>SGML</ProjectType>
</Project>
</Projects>
加载和提取元素的方法:
private void openProjectToolStripMenuItem_Click(object sender, EventArgs e)
{
Projects myProjects = new Projects(this);
myProjects.Show(); //displays the Form 2 (called Projects)
XmlDocument xdoc = new XmlDocument();
xdoc.Load("O:\\TestDaws\\projects.xml");
string projList = "/Projects/Project";
XmlNodeList xname = xdoc.SelectNodes(projList + "/ProjectName");
XmlNodeList xtype = xdoc.SelectNodes(projList + "/ProjectType");
foreach (XmlNode xNodeName in xname)
{
myProjects.buildProjectList(xNodeName.InnerText.ToString());
}
}
最后是我构建 listView 的第二种形式的方法:
public void buildProjectList(string project)
{
ListViewItem projItem = new ListViewItem(project);
// projItem.SubItems.Add("--");
listView1.Items.Add(projItem);
}
谁能告诉我我是如何做到这一点的?我可以看到我只是将其中一个元素 (xname) 传递给第二种形式的方法。但是我如何传递另一个?有单独的foreach吗?我需要做的是以第二种形式将 xname 和 xtype 变量传递给方法,但我不知道最好的方法。
最佳答案
有一个indexer定义于 XmlNodeList
所以你可以使用一个简单的 for:
for (int i=0; i<xname.Count; i++)
{
XmlNode xNodeName = xname[i];
XmlNode xNodeType = xtype[i];
myProjects.buildProjectList(xNodeName.InnerText.ToString(),
xNodeType.InnerText.ToString());
}
这段代码假定 xname
和 xtype
列表总是平行的。
当然,您应该将 buildProjectList
更改为如下内容:
public void buildProjectList(string project, string type)
{
ListViewItem projItem = new ListViewItem(project+"-"+type);
listView1.Items.Add(projItem);
}
关于c# - 将 XML 元素读取到 ListView - 我如何将两个变量传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14872779/
我是一名优秀的程序员,十分优秀!