0
我在使用XmlReader读取XML中某个元素的属性时遇到了一些麻烦。为了让函数透视,我有一个组合框读取文件夹中的所有xml文件。然后将第一个组合框中选择的项目用作XmlReader的输入。将XML属性读入组合框
array<String^>^ HashMe::PopulateTCList()
{
int SelectedFileNum = comboBox1->SelectedIndex;
array<String^>^ Files = PopulateProjectList();
array<String^>^ AllTC = gcnew array<String^>(100);
int number = Files->GetLength(0);
try
{
int x = 0;
for(int y = 0; y < number; y++)
{
String^ File = Files[y];
if(SelectedFileNum == x)
{
XmlReader^ Reader = XmlReader::Create(File);
while(Reader->Read())
{
if((Reader->NodeType == XmlNodeType::Element) && (Reader->Name == "TestCycle"))
{
String^ TCNumber = Reader->ReadElementContentAsString();
comboBox2->Items->Add(TCNumber);
}
else
{
Reader->ReadToFollowing("TestCycle");
}
}
}
x = x +1;
}
}
catch (Exception^ e)
{
MessageBox::Show(e->ToString());
}
return AllTC;
}
的XML布局类似于下面的一个:
<?xml version="1.0" encoding="utf-8"?>
<Project Name="test">
<TestCycle Number="1">
<Files>
<FileName File="C:\Users\brandonm\Documents\asd.xps" />
<HashCode Code="AB-B5-85-EC-FE-C4-E2-41-09-6A-A8-77-69-A9-8D-1F" />
</Files>
</TestCycle>
<Project Name="test">
<TestCycle Number="2">
<Files>
<FileName FileName="C:\Users\brandonm\Documents\asd.xps" />
<HashCode HashCode="AB-B5-85-EC-FE-C4-E2-41-09-6A-A8-77-69-A9-8D-1F" />
</Files>
</TestCycle>
</Project>
<Project Name="test">
<TestCycle Number="3">
<Files>
<FileName FileName="C:\Users\brandonm\Documents\asd.xps" />
<HashCode HashCode="AB-B5-85-EC-FE-C4-E2-41-09-6A-A8-77-69-A9-8D-1F" />
</Files>
</TestCycle>
</Project>
</Project>
基本上我需要从每个TestCycle元件的数量在组合框来显示。
如果任何人有一个建议或知道我的语法有什么错误,请让我知道。我无法在网上找到一个可靠的例子。
谢谢ildjarn这就是我所需要的。 – Brandonm 2011-04-09 09:04:04