csdn网友问:读取复杂格式的XML文件。
2009-08-19 17:20
489 查看
主要是今天又有网友问类似的xml文件读取问题。写到这里容易查找。
找不到下面问题的源代码和xml文件和读取后的界面。重新写一个。源代码也上传到:
http://download.csdn.net/source/1588898
找以前网友问题地址:
http://topic.csdn.net/u/20090410/14/13b574d1-9338-4796-9aec-8d28a5245dc4.html
XML文件:
问题:要取出的字段:SHOPCODE/CUSTOMERNO/DATE/ID/PRICE/UPC/PRODUCT_ID/QUANTITY
我的回答:
这个可以读出 SHOPCODE/CUSTOMERNO/DATE xml文件的SHOP的属性。
这是一种简单的方法。接下来你要读出的东西的某一个TRANSACTION ID的里面的那些元素的值,还是循环读出是有ITEM
还有第二种比较好的容易控制的方法。
这是第二种方法:
上面的代码读取xml后结果如界面:
http://album.hi.csdn.net/app_uploads/linjimu/20090819/171502826.jpg
找不到下面问题的源代码和xml文件和读取后的界面。重新写一个。源代码也上传到:
http://download.csdn.net/source/1588898
找以前网友问题地址:
http://topic.csdn.net/u/20090410/14/13b574d1-9338-4796-9aec-8d28a5245dc4.html
XML文件:
<?xml version="1.0" encoding="utf-8"?> <DAILY_TRANSACTIONS> <SHOP SHOPCODE="S0001" CUSTOMERNO="test001" DATE="2009-03-05"> <TRANSACTION ID="686"> <ITEM> <PRICE>278</PRICE> <UPC></UPC> <PRODUCT_ID>319503</PRODUCT_ID> <QUANTITY>1</QUANTITY> </ITEM> </TRANSACTION> <TRANSACTION ID="688"> <ITEM> <PRICE>48</PRICE> <UPC></UPC> <PRODUCT_ID>SX3707</PRODUCT_ID> <QUANTITY>1</QUANTITY> </ITEM> </TRANSACTION> <TRANSACTION ID="689"> <ITEM> <PRICE>48</PRICE> <UPC></UPC> <PRODUCT_ID>SX3708</PRODUCT_ID> <QUANTITY>1</QUANTITY> </ITEM> </TRANSACTION> </SHOP> </DAILY_TRANSACTIONS>
问题:要取出的字段:SHOPCODE/CUSTOMERNO/DATE/ID/PRICE/UPC/PRODUCT_ID/QUANTITY
我的回答:
这个可以读出 SHOPCODE/CUSTOMERNO/DATE xml文件的SHOP的属性。
这是一种简单的方法。接下来你要读出的东西的某一个TRANSACTION ID的里面的那些元素的值,还是循环读出是有ITEM
Dim xReader As XmlReader Dim shopCode As String = "" Dim cNum As String = "" Dim dDate As String = "" xReader = XmlReader.Create("D:/xml.xml") xReader.ReadToFollowing("SHOP") If xReader.HasAttributes Then shopCode = xReader.GetAttribute("SHOPCODE") cNum = xReader.GetAttribute("CUSTOMERNO") dDate = xReader.GetAttribute("DATE") End If Me.TextBox1.Text += shopCode & System.Environment.NewLine Me.TextBox1.Text += cNum & System.Environment.NewLine Me.TextBox1.Text += dDate & System.Environment.NewLine
还有第二种比较好的容易控制的方法。
这是第二种方法:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim IXmlDoc As New XmlDocument() Dim IRoot As XmlNode Dim INodeList As XmlNodeList Dim INode, itemX As XmlNode '加载文件 IXmlDoc.Load("D:/xml.xml") '选择SHOP IRoot = IXmlDoc.SelectSingleNode("//SHOP") '读出各个属性值。 Me.TextBox1.Text += "SHOP各个属性的值" & Environment.NewLine Me.TextBox1.Text += "SHOPCODE:" & IRoot.Attributes("SHOPCODE").Value & Environment.NewLine Me.TextBox1.Text += "CUSTOMERNO:" & IRoot.Attributes("CUSTOMERNO").Value & Environment.NewLine Me.TextBox1.Text += "DATE:" & IRoot.Attributes("DATE").Value & Environment.NewLine Me.TextBox1.Text += "===================" & Environment.NewLine '-------------------- '这里读的是所有<TRANSACTION>的列表 INodeList = IRoot.ChildNodes For i = 0 To INodeList.Count - 1 '这里读的是某一个<TRANSACTION> INode = INodeList.Item(i) '这里读的是<ID>属性 Me.TextBox1.Text += "<TRANSACTION> ID:" & INode.Attributes("ID").Value & System.Environment.NewLine '这里读的是一个<ITEM> itemX = INode.FirstChild '--------------------------- '加载各个元素的值,if then 的作用是来判断那个元素为空元素。如你的<UPC>的空的。 If itemX.Item("PRICE").FirstChild IsNot Nothing Then Me.TextBox1.Text += "PRICE:" & itemX.Item("PRICE").FirstChild.Value & Environment.NewLine Else Me.TextBox1.Text += "PRICE:" & Environment.NewLine End If If itemX.Item("UPC").FirstChild IsNot Nothing Then Me.TextBox1.Text += "UPC: " & itemX.Item("UPC").FirstChild.Value & Environment.NewLine Else Me.TextBox1.Text += "UPC: " & Environment.NewLine End If If itemX.Item("PRODUCT_ID").FirstChild IsNot Nothing Then Me.TextBox1.Text += "PRODUCT_ID:" & itemX.Item("PRODUCT_ID").FirstChild.Value & Environment.NewLine Else Me.TextBox1.Text += "PRODUCT_ID:" & Environment.NewLine End If If itemX.Item("QUANTITY").FirstChild IsNot Nothing Then Me.TextBox1.Text += "QUANTITY:" & itemX.Item("QUANTITY").FirstChild.Value & Environment.NewLine Else Me.TextBox1.Text += "QUANTITY:" & Environment.NewLine End If Me.TextBox1.Text += "-----------------" & Environment.NewLine Next End Sub
上面的代码读取xml后结果如界面:
http://album.hi.csdn.net/app_uploads/linjimu/20090819/171502826.jpg
相关文章推荐
- Hadoop如何读取复杂格式的文件,例如XML、HTML、图像等,附源码
- xml读取properties配置文件,web.xml读取properties,properties格式,properties在eclipse创建
- dom4j读取一个xml文件,以原格式输出
- xml读取properties配置文件,web.xml读取properties,properties格式,properties在eclipse创建
- 如果从Silverlight 读取本地GB2312格式的xml文件
- 用URLLoader读取本地txt,xml等格式文件
- XML 格式文件读取
- 【CSDN常见问题解答】Java如何读取XML文件
- 读取XML文件数据,XML数据标注格式转换为TXT格式
- 如何快速读取大文件(看csdn一网友要求写的)没有测试具体的速度。
- TXMLDOCUMENT读取UTF-8格式XML文件乱码问题
- [VB.NET]vb.net如何读取数据库生成指定格式的xml文件
- 读取五种格式的配置文件(xml(两种方式),txt,excel,csv,json)
- flex通过HTTPService组件读取复杂结构的xml文件
- XMLUtil工具类读取XML或properties格式的配置文件
- 读取XML文件内的某个节点的值
- 使用XmlReader读取xml文件
- XML之读取文件
- js生成xml文件及js读取xml文件,获得xml节点子节点的个数(同Extjs中树获得子结点个数)
- jdom学习:读取xml文件