Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Studio 2010中未加载XML嵌入资源?_Xml_Vb.net_Visual Studio 2010 - Fatal编程技术网

Visual Studio 2010中未加载XML嵌入资源?

Visual Studio 2010中未加载XML嵌入资源?,xml,vb.net,visual-studio-2010,Xml,Vb.net,Visual Studio 2010,下面是我的全部代码。我试图做的是在按钮10_单击时将XML资源文件的随机行读取到标签,但是程序没有从嵌入的XML文件中识别任何信息,资源流是否在某个地方“丢失” Imports System.IO Imports System Imports System.Reflection Imports System.Xml Imports System.Security.Permissions Public Class Form1 Dim asm = Assembly.GetExecutin

下面是我的全部代码。我试图做的是在按钮10_单击时将XML资源文件的随机行读取到标签,但是程序没有从嵌入的XML文件中识别任何信息,资源流是否在某个地方“丢失”

Imports System.IO
Imports System
Imports System.Reflection
Imports System.Xml
Imports System.Security.Permissions

Public Class Form1

    Dim asm = Assembly.GetExecutingAssembly()
    Dim var = asm.GetManifestResourceStream("WindowsApplication2.british-english-dictionary.xml")

    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click

          Dim rand = New Random()
          Dim myXml = New XDocument()

          Dim lexemeList = myXml.Descendants("lexeme").ToList()
          Dim randomLexeme = lexemeList(rand.Next(0, lexemeList.Count - 1))

          Label1.Text = randomLexeme

    End Sub
End Class
编辑:XML文件的示例如下:

<?xml version="1.0" encoding="UTF-8"?>  
<root>
<lexeme><grapheme>A</grapheme>  <phoneme>'eI</phoneme></lexeme>
<lexeme><grapheme>A'asia</grapheme>  <phoneme>a'eIZi@</phoneme></lexeme>
<lexeme><grapheme>A's</grapheme>     <phoneme>'eIz</phoneme></lexeme>
<lexeme><grapheme>AOL</grapheme>     <phoneme>'eI0l</phoneme></lexeme>
<lexeme><grapheme>AOL's</grapheme>   <phoneme>'eI0lz</phoneme></lexeme>
<lexeme><grapheme>Aaberg</grapheme>  <phoneme>'A:b3:g</phoneme></lexeme>
<lexeme><grapheme>Aaberg's</grapheme>    <phoneme>'A:b3:gz</phoneme></lexeme>
</root>

A'eI
A'asia A'eIZi@
A's'eIz
美国在线
美国在线的eI0lz
阿贝格'A:b3:g
阿贝格的“A:b3:gz”
您需要调用以加载清单流:

Dim myXml = XDocument.Load(var)
var.Close()

我已经尝试使用您建议的amendment运行它,但不幸的是
Dim random lexeme=lexemeList(rand.Next(0,lexemeList.Count-1))
仍然超出范围,因为lexelist.Count=0,可能是因为Xml没有正确加载。@Andy您检查过文档是否已经在myXaml中加载了吗?尝试更改加载选项
myXml.Load(var,LoadOptions.PreserveWhitespace)
我不确定如何检查它是否加载到myXaml中;有没有简单的检查方法?amminding
myXml.Load(var,LoadOptions.PreserveWhitespace)
仍然会给出错误。@Andy检查这会给您带来什么
myXml.Nodes.Count
。还要确保外壳正确无误。它可能是
Lexeme
而不是
Lexeme
谢谢你的建议,我试过了,结果返回0。我不知道为什么不能正确加载xml,也找不到任何加载嵌入式xml文件的示例。