首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取嵌入XML文件

读取嵌入XML文件
EN

Stack Overflow用户
提问于 2016-02-17 11:26:21
回答 1查看 361关注 0票数 0

我正在尝试读取一个作为嵌入式资源的XML文件,并使用它创建一个DataSet

通常我会访问xml文件,如下所示..。

代码语言:javascript
复制
    'THIS SECTION POPULTATES THE DATAGRIDVIEW WITH STOCK INFORMATION MADE AVAILABLE IN THE XML DOCUMENT (Stock.xml)...
    Dim filepath As String = (IO.Directory.GetCurrentDirectory & "\Stock.xml")
    Dim DS_CUSTOMERS As New DataSet
    DS_CUSTOMERS.ReadXml(filepath)

    Dim DS_CUSTOMERS As New DataSet
    DS_CUSTOMERS.ReadXml(rm123.GetObject("Stock.xml"))

    DataGridView1.DataSource = DS_CUSTOMERS.Tables(0)

    DataGridView1.DataSource = DS_CUSTOMERS
    DataGridView1.DataMember = "Data"

引用嵌入的图像也很容易。这样做如下(在本例中Combobox提供文件名):

代码语言:javascript
复制
    'This loads the embeded recource image...
    Dim rm As Resources.ResourceManager
    rm = New Resources.ResourceManager("Load_Calculator.resources", System.Reflection.Assembly.GetExecutingAssembly)
    PictureBox1.Image = rm.GetObject(ComboBox1.Text)

现在,我的逻辑(这是错误的)是将这两种代码进行混合,然后执行以下操作,但是在调试时,我什么也得不到。

代码语言:javascript
复制
'THIS SECTION POPULTATES THE DATAGRIDVIEW WITH STOCK INFORMATION MADE AVAILABLE IN THE XML DOCUMENT (Stock.xml)...
Dim rm123 As Resources.ResourceManager
rm123 = New Resources.ResourceManager("Load_Calculator.resources", System.Reflection.Assembly.GetExecutingAssembly)

Dim DS_CUSTOMERS As New DataSet
DS_CUSTOMERS.ReadXml(rm123.GetObject("Stock.xml"))


DataGridView1.DataSource = DS_CUSTOMERS.Tables(0)
DataGridView1.DataSource = DS_CUSTOMERS
DataGridView1.DataMember = "Data"

以及xml文件如下:

代码语言:javascript
复制
    <COMPELATION>
    <Data>
            <TTN>Select a Truss-System...</TTN>
            <FJQ></FJQ>
            <TTH></TTH>
            <TTW></TTW>
            <FCT></FCT>
            <MTD></MTD>
            <MTT></MTT>
            <DVB></DVB>
            <TVB></TVB>
            <DTP></DTP>
            <MAT></MAT>
            <TSW></TSW>
    </Data>
    <Data>
            <TTN>FD33</TTN>
            <FJQ>3x</FJQ>
            <TTH>257,85 mm</TTH>
            <TTW>290 mm</TTW>
            <FCT>SC1-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>2 mm</MTT>
            <DVB>20 mm</DVB>
            <TVB>2 mm</TVB>
            <DTP>12 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,044 kN/m</TSW>
    </Data>
    <Data>
            <TTN>FD34</TTN>
            <FJQ>4x</FJQ>
            <TTH>290 mm</TTH>
            <TTW>290 mm</TTW>
            <FCT>SC1-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>2 mm</MTT>
            <DVB>20 mm</DVB>
            <TVB>2 mm</TVB>
            <DTP>12 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,058 kN/m</TSW>
    </Data>
    <Data>
            <TTN>HD33</TTN>
            <FJQ>3x</FJQ>
            <TTH>257,85 mm</TTH>
            <TTW>290 mm</TTW>
            <FCT>SC1-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>3 mm</MTT>
            <DVB>20 mm</DVB>
            <TVB>2 mm</TVB>
            <DTP>12 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,055 kN/m</TSW>
    </Data>
    <Data>
            <TTN>HD34</TTN>
            <FJQ>4x</FJQ>
            <TTH>290 mm</TTH>
            <TTW>290 mm</TTW>
            <FCT>SC1-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>3 mm</MTT>
            <DVB>20 mm</DVB>
            <TVB>2 mm</TVB>
            <DTP>12 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,074 kN/m</TSW>
    </Data>
    <Data>
            <TTN>HD33</TTN>
            <FJQ>3x</FJQ>
            <TTH>257,85 mm</TTH>
            <TTW>290 mm</TTW>
            <FCT>SC1-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>3 mm</MTT>
            <DVB>20 mm</DVB>
            <TVB>2 mm</TVB>
            <DTP>12 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,055 kN/m</TSW>
    </Data>
    <Data>
            <TTN>HD34</TTN>
            <FJQ>4x</FJQ>
            <TTH>290 mm</TTH>
            <TTW>290 mm</TTW>
            <FCT>SC1-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>3 mm</MTT>
            <DVB>20 mm</DVB>
            <TVB>2 mm</TVB>
            <DTP>12 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,074 kN/m</TSW>
    </Data>
    <Data>
            <TTN>FD44</TTN>
            <FJQ>3x</FJQ>
            <TTH>400 mm</TTH>
            <TTW>400 mm</TTW>
            <FCT>SC1-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>2 mm</MTT>
            <DVB>25 mm</DVB>
            <TVB>2 mm</TVB>
            <DTP>12 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,075 kN/m</TSW>
    </Data>
    <Data>
            <TTN>FD43</TTN>
            <FJQ>3x</FJQ>
            <TTH>353,11 mm</TTH>
            <TTW>400 mm</TTW>
            <FCT>SC1-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>3 mm</MTT>
            <DVB>25 mm</DVB>
            <TVB>2 mm</TVB>
            <DTP>12 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,059 kN/m</TSW>
    </Data>
    <Data>
            <TTN>HD44</TTN>
            <FJQ>4x</FJQ>
            <TTH>400 mm</TTH>
            <TTW>400 mm</TTW>
            <FCT>SC1-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>3 mm</MTT>
            <DVB>25 mm</DVB>
            <TVB>2 mm</TVB>
            <DTP>12 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,081 kN/m</TSW>
    </Data>
    <Data>
            <TTN>XD</TTN>
            <FJQ>4x</FJQ>
            <TTH>400 mm</TTH>
            <TTW>290 mm</TTW>
            <FCT>SC2-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>3 mm</MTT>
            <DVB>25 mm</DVB>
            <TVB>3 mm</TVB>
            <DTP>16 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,085 kN/m</TSW>
    </Data>
    <Data>
            <TTN>ST</TTN>
            <FJQ>4x</FJQ>
            <TTH>500 mm</TTH>
            <TTW>500 mm</TTW>
            <FCT>SC3-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>4 mm</MTT>
            <DVB>30 mm</DVB>
            <TVB>3 mm</TVB>
            <DTP>16 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,134 kN/m</TSW>
    </Data>
    <Data>
            <TTN>FT50</TTN>
            <FJQ>4x</FJQ>
            <TTH>521,10 mm</TTH>
            <TTW>570 mm</TTW>
            <FCT>SC3-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>4 mm</MTT>
            <DVB>25 mm</DVB>
            <TVB>3 mm</TVB>
            <DTP>16 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,135 kN/m</TSW>
    </Data>
    <Data>
            <TTN>XT</TTN>
            <FJQ>4x</FJQ>
            <TTH>800 mm</TTH>
            <TTW>570 mm</TTW>
            <FCT>CS3-CON</FCT>
            <MTD>50 mm</MTD>
            <MTT>4 mm</MTT>
            <DVB>40 mm</DVB>
            <TVB>3 mm</TVB>
            <DTP>16 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,200 kN/m</TSW>
    </Data>
    <Data>
            <TTN>TT</TTN>
            <FJQ>4x</FJQ>
            <TTH>1010 mm</TTH>
            <TTW>580 mm</TTW>
            <FCT>SC3-CON</FCT>
            <MTD>60 mm</MTD>
            <MTT>5 mm</MTT>
            <DVB>50 mm</DVB>
            <TVB>3 mm</TVB>
            <DTP>16 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,250 kN/m</TSW>
    </Data>
    <Data>
            <TTN>FT100</TTN>
            <FJQ>4x</FJQ>
            <TTH>986 mm</TTH>
            <TTW>580 mm</TTW>
            <FCT>CS3-CON</FCT>
            <MTD>60 mm</MTD>
            <MTT>5 mm</MTT>
            <DVB>50 mm</DVB>
            <TVB>3 mm</TVB>
            <DTP>16 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,220 kN/m</TSW>
    </Data>
    <Data>
            <TTN>MT</TTN>
            <FJQ>4x</FJQ>
            <TTH>1180 mm</TTH>
            <TTW>780 mm</TTW>
            <FCT>CS4-CON</FCT>
            <MTD>60 mm</MTD>
            <MTT>5 mm</MTT>
            <DVB>50 mm</DVB>
            <TVB>3 mm</TVB>
            <DTP>16 mm</DTP>
            <MAT>6082 T6</MAT>
            <TSW>0,220 kN/m</TSW>
    </Data>
 </COMPELATION>

<!-- TTN= Truss Type Name -->
<!-- FJQ= Face Joist Quantity -->
<!-- TTH= Total Truss Hight -->
<!-- TTW= Total Truss Width -->
<!-- MTD= Main Tube Diameter -->
<!-- FCT= Fiting/ Connection Type -->
<!-- MTT= Main Tube Thickness -->
<!-- DVB= Diameter Vertical Brace -->
<!-- TVB= Thickness Vertical Brace -->
<!-- DTP= Diameter Truss Pin -->
<!-- MAT= Material Type -->
<!-- TSW= Truss Self Weight -->
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-17 14:49:34

您可以使用GetManifestResourceStream方法(而不是GetObject)从嵌入式资源创建Stream。然后,您可以使用以DataSet.ReadXml作为参数的Stream重载来读取它。

代码语言:javascript
复制
Dim DS_CUSTOMERS As New DataSet
Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly
Using rs As IO.Stream = asm.GetManifestResourceStream(asm.GetName.Name & ".Stock.xml")
    DS_CUSTOMERS.ReadXml(rs)
End Using
DataGridView1.DataSource = DS_CUSTOMERS.Tables(0)
DataGridView1.DataMember = "Data"

若要将现有XML文件作为嵌入式资源添加到项目中,请在“解决方案资源管理器”中右键单击该项目,然后选择“添加现有项目”.然后在“添加现有项”对话框中,导航到Stock.xml文件(可能需要将文件类型筛选器设置为“数据文件”),并双击该文件以将其副本添加到项目中。最后,单击解决方案资源管理器中的文件以显示属性,并将Build属性更改为"Embedded“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35455393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档