网站建设资讯

NEWS

网站建设资讯

包含vb.netxml属性的词条

VB.net 读取 xml问题!

Dim xmlDoc As New System.Xml.XmlDocument

创新互联建站专注于企业成都营销网站建设、网站重做改版、巴楚网站定制设计、自适应品牌网站建设、H5网站设计商城开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为巴楚等各大城市提供网站开发制作服务。

xmlDoc.Load("c:\xml.xml") '载入xml文件

Dim Items As Xml.XmlNodeList = xmlDoc.DocumentElement.SelectNodes("//record/item") '参数为xpath查询串,前面斜杠,//:表示任何结点,/:表示根结点

For Each s As Xml.XmlNode In Items

Console.WriteLine(s.Attributes.GetNamedItem("id").Value  vbTab  s.InnerText)

Next

VB.NET 或者 C#实现XML树增删改节点 代码

//创建XMLdocument

System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

// 从XML文件中加载XML

doc.Load(XmlPath);

//为doc的根节点创建子节点nodeA(没有添加到根节点上!)

System.Xml.XmlNode nodeA = doc.CreateNode(System.Xml.XmlNodeType.Element, "SAMPLE_ADD", "SAMPLEURI_ADD");

//为子节点nodeA设置属性

nodeA.Value = "SAMPLE VALUE ADD";

//将nodeA添加为doc的子节点

doc.AppendChild(nodeA);

//为nodeA节点创建子节点nodeAA(没有添加到nodeA节点上!)

System.Xml.XmlNode nodeAA = nodeA.CreateNode(System.Xml.XmlNodeType.Element, "SAMPLE_ADD2", "SAMPLEURI_ADD2");

//为子节点nodeAA设置属性

nodeAA.Value = "SAMPLE VALUE ADD2";

//将nodeAA添加为nodeA的子节点

nodeA.AppendChild(nodeAA);

//遍历nodeA下面的所有子节点

foreach (System.Xml.XmlNode node in nodeA.ChildNodes)

{

//处理这些节点

}

//删除节点的做法是遍历该节点然后吧符合条件的删除掉

foreach (System.Xml.XmlNode node in doc.ChildNodes)

{

// 将节点从父上删除

doc.RemoveChild(node);

}

vb.net操作xml数据库(急)

使用System.XML

Imports Microsoft.VisualBasic

Imports System

Imports System.IO

Imports System.Xml

namespace HowTo.Samples.XML

public class WriteXmlFileSample

private const document as string = "newbooks.xml"

shared sub Main()

Dim myWriteXmlFileSample as WriteXmlFileSample

myWriteXmlFileSample = new WriteXmlFileSample()

myWriteXmlFileSample.Run(document)

end sub

public sub Run(args As String)

Dim myXmlTextReader as XmlTextReader = nothing

Dim myXmlTextWriter as XmlTextWriter = nothing

try

myXmlTextWriter = new XmlTextWriter (args, nothing)

myXmlTextWriter.Formatting = System.Xml.Formatting.Indented

myXmlTextWriter.WriteStartDocument(false)

myXmlTextWriter.WriteDocType("bookstore", nothing, "books.dtd", nothing)

myXmlTextWriter.WriteComment("此文件表示书店库存数据库的另一个片断")

myXmlTextWriter.WriteStartElement("bookstore")

myXmlTextWriter.WriteStartElement("book", nothing)

myXmlTextWriter.WriteAttributeString("genre","autobiography")

myXmlTextWriter.WriteAttributeString("publicationdate","1979")

myXmlTextWriter.WriteAttributeString("ISBN","0-7356-0562-9")

myXmlTextWriter.WriteElementString("title", nothing, "The Autobiography of Mark Twain")

myXmlTextWriter.WriteStartElement("Author", nothing)

myXmlTextWriter.WriteElementString("first-name", "Mark")

myXmlTextWriter.WriteElementString("last-name", "Twain")

myXmlTextWriter.WriteEndElement()

myXmlTextWriter.WriteElementString("price", "7.99")

myXmlTextWriter.WriteEndElement()

myXmlTextWriter.WriteEndElement()

'向文件写 XML 并关闭编写器

myXmlTextWriter.Flush()

myXmlTextWriter.Close()

' 读取返回的文件并进行分析以确保正确生成 XML

myXmlTextReader = new XmlTextReader (args)

FormatXml (myXmlTextReader, args)

catch e as Exception

Console.WriteLine ("异常:{0}", e.ToString())

finally

Console.WriteLine()

Console.WriteLine("对文件 {0} 的处理已完成。", args)

If Not myXmlTextReader Is Nothing

myXmlTextReader.Close()

end if

'关闭编写器

If Not myXmlTextWriter Is Nothing

myXmlTextWriter.Close()

end if

End try

End Sub

private shared Sub FormatXml (reader as XmlTextReader, filename as String)

Dim piCount, docCount, commentCount, elementCount as Integer

Dim attributeCount, textCount, whitespaceCount as Integer

While reader.Read()

Select (reader.NodeType)

case XmlNodeType.ProcessingInstruction:

Format (reader, "ProcessingInstruction")

piCount += 1

case XmlNodeType.DocumentType:

Format (reader, "DocumentType")

docCount += 1

case XmlNodeType.Comment:

Format (reader, "Comment")

commentCount += 1

case XmlNodeType.Element:

Format (reader, "Element")

elementCount += 1

While reader.MoveToNextAttribute()

Format (reader, "Attribute")

end While

if (reader.HasAttributes)

attributeCount += reader.AttributeCount

end if

case XmlNodeType.Text:

Format (reader, "Text")

textCount += 1

case XmlNodeType.Whitespace:

whitespaceCount += 1

End Select

End While

' 显示该文件的统计信息

Console.WriteLine ()

Console.WriteLine("{0} 文件的统计信息", filename)

Console.WriteLine ()

Console.WriteLine("处理指令:" piCount)

Console.WriteLine("文档类型:" docCount)

Console.WriteLine("注释:" commentCount)

Console.WriteLine("元素:" elementCount)

Console.WriteLine("属性:" attributeCount)

Console.WriteLine("文本:" textCount)

Console.WriteLine("空白:" whitespaceCount)

End Sub

private shared Sub Format(byref reader as XmlTextReader , NodeType as String)

' 格式化输出

Console.Write(reader.Depth " ")

Console.Write(reader.AttributeCount " ")

Dim i as Integer

for i = 0 to reader.Depth - 1

Console.Write(Strings.chr(9))

Next

Console.Write(reader.Prefix NodeType "" reader.Name "" reader.Value)

Console.WriteLine()

End Sub

End Class

End Namespace

参考:

求VB操作 XML对象的教程

万事俱备,我们先用VB和MSXML的COM接口的DOM实现的一个例子来对XML操作进行初步的了解吧。首先声明下面要用的几个对象的变量:Dim tempdoc As DOMDocument

Dim tempnode As IXMLDOMNode

Dim tempelement As IXMLDOMElement

Dim tempattribute As IXMLDOMElement

Dim root As IXMLDOMElement文档对象模型(DOM)使用了一系列相应的对象描述了XML文档的等级状态,DOMDocument类是一个描绘XML文档的DOM结构的MSXML类。DOMDocument类仅仅提供了很少的几个有用的属性和方法,例如:Load方法载入一个xml文件,loadxml方法将字符串作为xml数据添加到对象中。DOMDocument的xml属性返回文档的xml描述,可以显示这些返回值看看这些文档究竟是什么样子,也可以将它存储为一个文件,DOMDocument对象的documentElement属性表示文档数据的根结点,通常情况下操作XML文档都从这里开始。DOMDocument提供了几种创建新节点的方法。CreateElement方法为文档创建一个新的元素节点,其他创建节点的方法有createAttribute, createProcessingInstruction, 和 createTextNode,在这里就不一一介绍了。IXMLDOMNode类描述了一个节点,该类提供了一系列用于搜索和操纵XML文档的属性和方法。selectSingleNode 方法用于搜索指定节点的后代,用于搜索指定节点路径的语言称为XPATH,XPATH非常棘手,本文就不详细说明其规范了。在IXMLDOMNode对象中,有许多有用的属性值:attributes.节点属性集合

nodeName.节点的标记名

nodeTypeString.节点的类型

ownerDocument.返回DOMDocument对象包含的节点

text.表示节点包含的文本内容。如果该节点包含其他节点,那么text代表了所有节点的文本内容的组合。

xml.给出了节点的xml内容,例如:"<Email>hongwanfu@yahoo.com</Email>".ChildNodes集合包含了节点的子节点。要给节点增加一个子节点,首先必须给使用DOMDocument对象的节点创建方法,然后将这个新建的节点加入到父节点的childNodes集合中。 ChildNodes集合包含了节点的子节点。要给节点增加一个子节点,首先必须给使用DOMDocument对象的节点创建方法,然后将这个新建的节点加入到父节点的childNodes集合中。由于每个节点类型都有不同的访问方法和内容限制,有时候使用特定类型的节点要比使用通用 IXMLDOMNode 对象更容易。要做到这一点,需要使用 IXMLDOMElement 对象来处理 XML 数据元素和属性。正如元素可以包含 XML 数据文件中的子元素、文本、注释、处理说明、CDATA 部分和实体引用一样,IXMLDOMElement 对象也可以包含 IXMLDOMElement、IXMLDOMText、IXMLDOMComment、IXMLDOMProcessingInstruction、IXMLDOMCDATASection 和 IXMLDOMEntityReference 对象。可以通过使用 IXMLDOMElement 对象的 getAttribute 和 setAttribute 方法来访问属性;或者通过 IXMLDOMElement 对象的 attributes 属性,将属性作为 IXMLDOMNamedNodeMap 对象进行管理。有关使用这些方法和对象的详细信息,请参阅 MSXML 4.0 SDK Help。接下来我们要做的是生成一个XML DOMDocument 对象 :Set tempdoc = New DOMDocument生成根节点并把它设置为文件的根 :Set root = tempdoc.createElement("Personal")

Set tempdoc.documentElement = root生成孩子节点添加到根节点上去,并且为这个节点设置一个属性 :

Set tempnode = tempdoc.createNode(NODE_ELEMENT, "Web", "")

tempnode.Text = " "

root.appendChild tempnode取得元素节点的接口,添加属性:Set tempelement = tempnode

tempelement.setAttribute "Type", "Homepage"最后,写XML文件:Open "CreateXMLFile.xml" for output as #1

Print #1, root.XML

Close #1下面就是上面程序生成的CreateXMLFile.xml文件的内容如图:首先,建立一个名叫Personal.xml的文件:<?xml version="1.0" encoding="GB2312"?><个人信息><姓名>洪万福</姓名><性别>男</性别><出生日期>1983年x月x日</出生日期><地址>福建省厦门市集美大学水产学院新区270#</地址><邮编>361021</邮编><QQ>24948251</QQ><个人主页> </个人主页></个人信息>其中,encoding="GB2312"是为了防止显示中文时出现乱码。接着,进入Visual Basic 6,建立7个Label和7个TextBox, 具体如图: 随后,编写如下代码:Option Explicit

Private p_AppPath As String

Private Sub Form_Load()

 ' 获得程序运行目录

 p_AppPath = App.Path

 If Right$(p_AppPath, 1) <> "\" Then p_AppPath = p_AppPath "\"

 ' 加载值

 LoadValues

End SubPrivate Sub Form_Unload(Cancel As Integer)

 ' 保存现有的值

 SaveValues

End SubPrivate Sub LoadValues() Dim xml_document As DOMDocument Dim values_node As IXMLDOMNode ' 载入文件 Set xml_document = New DOMDocument

 xml_document.Load p_AppPath "Personal.xml"

 If xml_document.documentElement Is Nothing ThenExit Sub End If '寻找节点

 Set values_node = xml_document.selectSingleNode("个人信息")

 ' 读取各个节点的值

 txtName.Text = GetNodeValue(values_node, "姓名", "???")

 txtSex.Text = GetNodeValue(values_node, "性别", "???")

 txtBirthday.Text = GetNodeValue(values_node, "出生日期", "???")

 txtAddress.Text = GetNodeValue(values_node, "地址", "???")

 txtZip.Text = GetNodeValue(values_node, "邮编", "???")

 txtQQ.Text = GetNodeValue(values_node, "QQ", "???")

 txtHomepage.Text = GetNodeValue(values_node, "个人主页", "???")End Sub' 返回各个节点的值Private Function GetNodeValue(ByVal start_at_node As IXMLDOMNode, ByVal node_name As String, _Optional ByVal default_value As String = "") As String Dim value_node As IXMLDOMNode

 Set value_node = start_at_node.selectSingleNode(".//" node_name)

 If value_node Is Nothing Then

GetNodeValue = default_value

 Else

GetNodeValue = value_node.Text

 End IfEnd Function' 保存现有的值Private Sub SaveValues()

 Dim xml_document As DOMDocument

 Dim values_node As IXMLDOMNode

 ' 建立XML文件

 Set xml_document = New DOMDocument

 Set values_node = xml_document.createElement("个人信息")

 xml_document.appendChild values_node

 CreateNode values_node, "姓名", txtName.Text

 CreateNode values_node, "性别", txtSex.Text

 CreateNode values_node, "出生日期", txtBirthday.Text

 CreateNode values_node, "地址", txtAddress.Text

 CreateNode values_node, "邮编", txtZip.Text

 CreateNode values_node, "QQ", txtQQ.Text

 CreateNode values_node, "个人主页", txtHomepage.Text

 ' 保存XML文件

 xml_document.save p_AppPath "Personal.xml"

 

End SubPrivate Sub CreateNode(ByVal parent As IXMLDOMNode, _ByVal node_name As String, ByVal node_value As String) Dim new_node As IXMLDOMNode

 Set new_node = parent.ownerDocument.createElement(node_name)

 new_node.Text = node_value

 parent.appendChild new_node

End Sub运行结果如下: 虽然,MSXML提供了从Visual Basic6.0加载和存储XML文档的工具,但是,对其的应用要求程序员对VB和MSXML的COM接口有一定的认识,所以,并不是得到很广泛的应用。

作者:洪万福出处:微软社区责任编辑: 方舟 [ 2003-08-20 10:45 ] 本文为计划将应用程序更新到VB.NET的VB开发用户提供一些关于XML的建议 Visual Basic.NET的出现大大改变了这个状况,Visual Basic.NET提供了使用XML、XSL以及其他XML工具的完整工具,使用户很轻松就能实现XML的应用,甚至,在不用编写代码的情况下操作XML。ADO.NET是Microsoft新推出的.NET框架中用于数据访问的组件,其最大的优点就是使用XML作为传送数据的标准,只要有一个XML文本,就可以读入ADO.NET的组件中,然后ADO.NET再以XML格式传给数据库或者其他组件。可以使用DataSet对象的ReadXML方法将一个XML文件读入到DataSet中,这是一个重载的方法,有几种语法格式,经常用到的如下所示:ReadXML(FileName)其中,FileName为XML文档的名字,现在将前面创建的XML文本“Personal.xml”读入到DataSet中。新建一个项目,在窗体上创建一个Button和一个DataGrid控件,双击Button1输入以下代码:Dim ds As New DataSet()'读入XML文档

ds.ReadXml("personal.xml")

Dim tb As DataTable

Dim dv As DataView

tb = ds.Tables(0)

dv = New DataView(tb)

Me.DataGrid1.DataSource = dv

如何使用vb.net读取xml元素的属性

先读取节点Match,然后读取节点内的各个属性值。 再进行节点中的子节点SetSetName的读取,读取方式也是直接读取各个属性值。

ASP.NET中用VB语言怎么操作XML数据?急救啊

这个应该没有问题的。看起来比较轻松的。。

代码调试正确

using

System;

using

System.Collections;

using

System.ComponentModel;

using

System.Data;

using

System.Drawing;

using

System.Web;

using

System.Web.SessionState;

using

System.Web.UI;

using

System.Web.UI.WebControls;

using

System.Web.UI.HTMLControls;

using

System.XML;

private

XMLDocument

XMLDoc;

//load

XML

file

private

void

LoadXML()

{

XMLDoc=new

XMLDocument();

XMLDoc.Load(Server.MapPath("User.XML"));

}

//添加节点

private

void

AddElement()

{

LoadXML();

XMLNode

XMLdocSelect=XMLDoc.SelectSingleNode("user");

XMLElement

el=XMLDoc.CreateElement("person");

//添加person节点

el.SetAttribute("name","风云");

//添加person节点的属性"name"

el.SetAttribute("sex","女");

//添加person节点的属性

"sex"

el.SetAttribute("age","25");

//添加person节点的属性

"age"

XMLElement

xesub1=XMLDoc.CreateElement("pass");

//添加person节点的里的节点

xesub1.InnerText="123";//设置文本节点

el.AppendChild(xesub1);

XMLElement

xesub2=XMLDoc.CreateElement("Address");

xesub2.InnerText="昆明";//设置文本节点

el.AppendChild(xesub2);

XMLdocSelect.AppendChild(el);

XMLDoc.Save(Server.MapPath("user.XML"));

}

//修改节点

private

void

UpdateElement()

{

LoadXML();

XMLNodeList

nodeList=XMLDoc.SelectSingleNode("user").ChildNodes;//获取bookstore节点的所有子节点

foreach(XMLNode

xn

in

nodeList)//遍历所有子节点

{

XMLElement

xe=(XMLElement)xn;//将子节点类型转换为XMLElement类型

if(xe.GetAttribute("name")=="风云")//如果name属性值为“风云”

{

xe.SetAttribute("name","发明");

//如果下面有子节点在下走

XMLNodeList

nls=xe.ChildNodes;//继续获取xe子节点的所有子节点

foreach(XMLNode

xn1

in

nls)//遍历

{

XMLElement

xe2=(XMLElement)xn1;//转换类型

if(xe2.Name=="pass")//如果找到

{

xe2.InnerText="66666";//则修改

break;

}

}

break;

}

}

XMLDoc.Save(Server.MapPath("user.XML"));//保存

}

//删出节点

private

void

deleteNode()

{

LoadXML();

XMLNodeList

xnl=XMLDoc.SelectSingleNode("user").ChildNodes;

foreach(XMLNode

xn

in

xnl)

{

XMLElement

xe=(XMLElement)xn;

if(xe.GetAttribute("name")=="发明")

{

//xe.RemoveAttribute("name");//删除name属性

xe.RemoveAll();//删除该节点的全部内容

break;

}

}

XMLDoc.Save(Server.MapPath("user.XML"));//保存

}

private

void

showIt()

{

LoadXML();

XMLNode

xn=XMLDoc.SelectSingleNode("user");

XMLNodeList

xnl=xn.ChildNodes;

foreach(XMLNode

xnf

in

xnl)

{

XMLElement

xe=(XMLElement)xnf;

//

Console.WriteLine(xe.GetAttribute("name"));//显示属性值

//

Console.WriteLine(xe.GetAttribute("sex"));

//

//

XMLNodeList

xnf1=xe.ChildNodes;

//

foreach(XMLNode

xn2

in

xnf1)

//

{

//

Console.WriteLine(xn2.InnerText);//显示子节点点文本

//

}

}

}

XML的样式:

?xml

version="1.0"

encoding="gb2312"?

user

person

/person

person

name="风拉"

sex="男"

age="25"

pass123/pass

Address大明/Address

/person

person

name="风云"

sex="女"

age="25"

pass123/pass

Address昆明/Address

/person

/user


分享名称:包含vb.netxml属性的词条
分享路径:http://njwzjz.com/article/dooheop.html