在XML文件VB.NET中循环

在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文件:

<?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)来解决这个问题。谢谢您的代码