求用VB.NET解析一个简单XML文件,谢谢,分不够的话结贴时再加

abwentin 2008-03-19 03:37:52

要求把这个文件的信息(name , type , path)解析出来后能保存到"FORM"中或者什么DATASET/LIST中并显示到页面上,且页面迁移也能继续传递下去.
因为是初学者,所以拜托哪位XDJM 写得详细一点(最好给一个完整的代码啦),如果需要导入什么命名空间什么的,也请提示我一下.谢谢. 因为里边会有文件的路径,解释出来路径中包含的"/"字符是否需要再处理一下呢?


XML 文件如下

<FILECOLLECTION>
<FILE name="file01">
<FILETYPE>txt</FILETYPE>
<FILEPATH>C:/TEMP/FILE_001.TXT <FILEPATH/>
</FILE >
<FILE name="img01">
<FILETYPE>jpg</FILETYPE>
<FILEPATH>C:/img/jpg_001.jpg <FILEPATH/>
</FILE >
<FILE name="file02">
<FILETYPE>doc</FILETYPE>
<FILEPATH>D:/TEMP/FILE_001.doc <FILEPATH/>
</FILE >
<FILE name="img02">
<FILETYPE>jpg</FILETYPE>
<FILEPATH>D:/img/jpg_045.jpg <FILEPATH/>
</FILE >
</FILECOLLECTION>



...全文
108 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
abwentin 2008-03-27
  • 打赏
  • 举报
回复



Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim doc As XmlDocument
doc = New XmlDocument()
doc.Load("C:\Data\sinpleSample\xmlfile\testXml.xml")
Dim node As XmlNode

node = doc.DocumentElement
DisplayTree(node)
End Sub

Public Sub displayTree(ByVal node As XmlNode)

If Not IsNothing(node) Then Format(node)

If node.HasChildNodes Then
node = node.FirstChild
While Not IsNothing(node)
displayTree(node)
node = node.NextSibling

End While
End If
End Sub

Private Sub format(ByVal node As XmlNode)
If Not node.HasChildNodes Then

'这里如果结点名为 "FILETYPE" ,可以把结点的值赋给当前的记录
if node.Name = "FILETYPE" then
....
end if

Console.WriteLine(Strings.Chr(9) & node.Name.ToString & "<" & node.Value & ">")
Else
Console.Write(node.Name)
If XmlNodeType.Element = node.NodeType Then
Dim map As XmlNamedNodeMap = node.Attributes
Dim attrnode As Object
For Each attrnode In map
Console.Write(" " & CType(attrnode, XmlNode).Name & "<" & CType(attrnode, XmlNode).Value & ">")

'这里如果结点的属性的值为 "name" ,可以创建新的记录之类
if CType(attrnode, XmlNode).Name = "name" then
....
end if

Next
End If
Console.WriteLine()

End If

End Sub






竟然最后还是要靠自己,太可怜了.
abwentin 2008-03-21
  • 打赏
  • 举报
回复
up again
abwentin 2008-03-19
  • 打赏
  • 举报
回复
UP
abwentin 2008-03-19
  • 打赏
  • 举报
回复
3楼写的是C#的吧? 我写在VB的时候都不通过哦.
应该是
dataTable=dataSet.Tables(0)

然后如果我想要显示一个消息框, 里边显示出
name = file01 type = txt path= C:/TEMP/FILE_001.TXT

下边的问号应该是怎么表达的? 谢谢

MessageBox.show("name = ??? type = ??? path= ???")


journeydj 2008-03-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 abwentin 的回复:]
imports system.xml 就行了吗?

我现在装的是 .NET 2008 日文系统 ,所以什么控件什么的都分不太清.

可不可以给我代码?
[/Quote]
问题不是什么系统。。LZ可以先看看书,datagrid这些控件的使用
abwentin 2008-03-19
  • 打赏
  • 举报
回复


最后最问一下,dataTable 在页面上怎么显示啊?

问题都很白痴,请多包涵

Ny-6000 2008-03-19
  • 打赏
  • 举报
回复
import system.data

'这样之后可以定义DataSet

Dim ds as new Dataset
ds.datasource=.......


往后的我也不会了,请见谅哟.
没从文件中读取过内容,只从数据库中读取过.
marey_marey111 2008-03-19
  • 打赏
  • 举报
回复
什么都不用啊。。能定义DataSet么?
DataSet dataSet=new DataSet();
DataTable dataTable=new DataTable();
dataSet.ReadXML("文件路径")
dataTable=dataSet.Table[0].Copy();
abwentin 2008-03-19
  • 打赏
  • 举报
回复
imports system.xml 就行了吗?

我现在装的是 .NET 2008 日文系统 ,所以什么控件什么的都分不太清.

可不可以给我代码?
marey_marey111 2008-03-19
  • 打赏
  • 举报
回复
疯了。。定义一个DataSet。。然后DataSet。ReadXML(“你的XML文件目录”);XML文本的内容就存在DATASET中了。。

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧