目前,我有列表框中的项目,可以更改和编辑。当我单击一个按钮时,列表框中的项目将保存到我的计算机上的XML文件中,并且会出现一个窗口,其中窗口上有一个Web浏览器对象,我希望显示该文件中的项目。
目前这是我点击按钮时的代码:
try
{
string selectedStandard = (string)cmbStandard.SelectedItem;
Information info = new Information();
info.Standards = _standardDefinitions;
SaveXML.SaveData(info, string.Format("{0}.xml",selectedStandard));
HTMLBrowser boss = new HTMLBrowser(selectedStandard);
boss.Show();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
这是我的SaveXML类:
public static void SaveData(object obj, string filename)
{
XmlSerializer sr = new XmlSerializer(obj.GetType());
TextWriter writer = new StreamWriter(filename);
sr.Serialize(writer, obj);
writer.Close();
}
这是我创建的类,其中包含一个属性,我将列表框中的所有内容保存到:
private List<StandardDefinition> standards;
public List<StandardDefinition> Standards
{
get { return standards; }
set { standards = value; }
}
然后在我的另一个表单上,我尝试使用以下代码在浏览器中显示项目列表:
wb.NavigateToStream(System.IO.File.OpenRead(@"C:\Users\user1\Documents\Visual Studio 2012\Projects\AddingColumn\AddingColumn\bin\Debug\data.xml"));
这似乎显示了保存在文件中的代码,而不是框中的列表。
这是显示的内容:
<?xml version="1.0" encoding="UTF-8"?>
-<Information xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-<Standards>
-<StandardDefinition>
<Column_Name>P101</Column_Name>
<Question>true</Question>
<Autofail>false</Autofail>
</StandardDefinition>
-<StandardDefinition>
<Column_Name>P101</Column_Name>
<Question>Hello</Question>
<Autofail>false</Autofail>
</StandardDefinition>
-<StandardDefinition>
<Column_Name>P101</Column_Name>
< Question>1</Question>
<Autofail>false</Autofail>
</StandardDefinition>
-<StandardDefinition>
<Column_Name>P11</Column_Name>
<Question>well no</Question>
<Autofail>false</Autofail>
</StandardDefinition>
</Standards>
</Information>
它应该显示为LIKE:
答案 0 :(得分:0)
WebBrowser发现该文件是xml后将其转换为可以与之交互的html。您可以通过右键单击并选择View Source
弹出菜单来查看html。你需要做类似的事情,并以你想要显示的方式将xml转换为html。有很多方法可以做到这一点,例如通过应用XML to HTML table with XSLT