0
以下是我的全部代码。我想要做的是获取一个随机的XML资源文件读取到Button10_Click上的标签,但该程序没有识别来自嵌入式XML文件的任何信息,资源流是否在某处丢失?在Visual Studio 2010中无法加载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'[email protected]</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>
我已经试过与ammendment运行它你建议但不幸的是'Dim randomLexeme = lexemeList(rand.Next(0,lexemeList.Count - 1))'仍然超出界限,因为lexemeList.Count = 0,可能是因为Xml没有正确加载。 – Andy 2013-02-10 19:12:18
@Andy你有没有检查文档是否已经加载到myXaml中?尝试更改加载选项'myXml.Load(var,LoadOptions.PreserveWhitespace)' – AbZy 2013-02-10 19:21:47
我不知道如何检查它是否加载到myXaml中;有没有简单的方法来检查?修改'myXml.Load(var,LoadOptions.PreserveWhitespace)'仍然会出现该错误。 – Andy 2013-02-10 19:32:08