在XML文件VB.NET中循环
我有一个XML文件:在XML文件VB.NET中循环,xml,vb.net,flowlayoutpanel,Xml,Vb.net,Flowlayoutpanel,我有一个XML文件: <?xml version="1.0" encoding="utf-8"?> <!--XML Database.--> <Disease> <Name id="1">Info1 <SubArticle>Info1</SubArticle> <MainArticle>Info1</MainArticle> <Image>Info1</Image> <
<?xml version="1.0" encoding="utf-8"?>
<!--XML Database.-->
<Disease>
<Name id="1">Info1
<SubArticle>Info1</SubArticle>
<MainArticle>Info1</MainArticle>
<Image>Info1</Image>
</Name>
<Name id="2">Info2
<SubArticle>Info2</SubArticle>
<MainArticle>Info2</MainArticle>
<Image>Info2</Image>
</Name>
<Name id="3">Info3
<SubArticle>Info3</SubArticle>
<MainArticle>Info3</MainArticle>
<Image>Info3</Image>
</Name>
</Disease>
信息1
信息1
信息1
信息1
信息2
信息2
信息2
信息2
信息3
信息3
信息3
信息3
我有用户控制:
我有一个FlowLayoutPanel,它有一个流动方向(自上而下)
我需要让程序使用XML文件中的信息在FlowLayoutPanel中添加新的UserControl
例:
程序将在面板中添加3个UserControl
UserControl1 = <Name id="1">
UserControl2 = <Name id="2">
UserControl3 = <Name id="3">
UserControl1=
UserControl2=
UserControl3=
…等等
我该怎么做 试试这个
Imports System.Xml
Module Module1
Const FILENAME As String = "c:\temp\test.xml"
Sub Main()
Dim doc As New XmlDocument
doc.Load(FILENAME)
Dim names As XmlNodeList = doc.GetElementsByTagName("Name")
Dim diseases As New List(Of Disease)
For Each name As XmlNode In names
Dim newDisease As New Disease
diseases.Add(newDisease)
newDisease.id = name.Attributes("id").Value
newDisease.text = name.InnerText
newDisease.subArticle = name.SelectSingleNode("SubArticle").InnerText
newDisease.mainArticle = name.SelectSingleNode("MainArticle").InnerText
newDisease.image = name.SelectSingleNode("Image").InnerText
Next
End Sub
' <Name id="1">
' Info1
' <SubArticle>Info1</SubArticle>
' <MainArticle>Info1</MainArticle>
' <Image>Info1</Image>
'</Name>
End Module
Public Class Disease
Public id As Integer
Public text As String
Public subArticle As String
Public mainArticle As String
Public image As String
End Class
Imports System.Xml
模块1
常量文件名为String=“c:\temp\test.xml”
副标题()
Dim文档作为新的XmlDocument
doc.Load(文件名)
名称为XmlNodeList=doc.GetElementsByTagName(“名称”)
Dim疾病作为新列表(疾病)
将每个名称作为名称中的XmlNode
作为新疾病的新疾病
疾病。添加(新疾病)
newDisease.id=name.Attributes(“id”).Value
newDisease.text=name.InnerText
newDisease.subArticle=name.SelectSingleNode(“subArticle”).InnerText
newDisease.mainArticle=name.SelectSingleNode(“mainArticle”).InnerText
newDisease.image=name.SelectSingleNode(“图像”).InnerText
下一个
端接头
'
'信息1
'信息1
'信息1
'信息1
'
端模块
公共疾病
作为整数的公共id
作为字符串的公共文本
作为字符串的公共子块
作为字符串的公共主文
作为字符串的公共图像
末级
请显示您尝试过的内容。目前,还不清楚您在读取文件或更改控件时是否遇到问题。propem不在用户控件中,但我需要一个代码读取xml文件中的所有元素,并将其显示在usercontrol中的标签中。您句子中的“and”表示它们是两个独立的问题。如果您这样处理它们,您可能会很好地找到它们的答案(1,如何读取XML文件,2,如何在usercontrol中的标签中显示文本)。在那之后,你可以简单地通过使用1的输出作为2的输入进行组合。我知道如何读取xml文件,但是所有的用户控件都只能从第一个元素获取信息。我的意思是,我如何可以循环从xml获取信息?感谢代码,但我有一个问题,我如何将图像放入xml文件的图片框中,我收到错误(无法将字符串转换为drawing.image?XML是否包含图像?您需要将类中的类型从字符串更改为图像。我仅使用字符串,因为这是您发布的内容。否XML将具有图像的路径,因此如何将路径(字符串)更改为图像(System.Deaw)?请参阅网页:。您需要使用image.FromStream().String到image通常会出现问题,请改用byte[]来解决。我使用Article.PictureBox1.image=image.FromFile(newDisease.image)来解决这个问题。谢谢您的代码