XML文件的内容是这样的:
<?xml version="1.0" encoding="gb2312"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by fan (fan) -->
<chen>
<config name="01" txt="天气预报" table = "fileIDX" typeid = "savek='B'">
<sql sql="insert into fileIDX(fileid,ftitle,gdate,source,fltxt,fkind,suffix,savek) values(irid.nextval,'**ftitle**','**gdate**','**source**',**fltxt**,'1','TXT','B')"/>
:
:
:
</chen>
要求是根据筛选出来的值与“name”比较,根据"name"的不同调用不同的SQL语句,"values()"里的值是传入的(XML外产生)。
请问该如何实现?谢谢。
<?xml version="1.0" encoding="gb2312"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by fan (fan) -->
<chen>
<config name="01" txt="天气预报" table = "fileIDX" typeid = "savek='B'">
<sql sql="insert into fileIDX(fileid,ftitle,gdate,source,fltxt,fkind,suffix,savek) values(irid.nextval,'**ftitle**','**gdate**','**source**',**fltxt**,'1','TXT','B')"/>
:
:
:
</chen>
要求是根据筛选出来的值与“name”比较,根据"name"的不同调用不同的SQL语句,"values()"里的值是传入的(XML外产生)。
请问该如何实现?谢谢。
1、使用XmlDocument装载Xml
2、使用XPath选择XmlDoc中的节点
3、遍历找到指定的XmlNode
4、取出XmlNode里面子节点<Sql>的值。不知道你是不是这个意思?
假设Name唯一
下面的代码没有测试 你可以自己测试一下
Dim name As String = "01"
Dim xmlPhysicalPath As String = "c:\config.xml"
Dim XMLDoc As New System.Xml.XmlDocument
XMLDoc.Load(xmlPhysicalPath)
Dim configNode As System.Xml.XmlNode = XMLDoc.SelectSingleNode("//config/[@name='" & name & "']")
If Not configNode Is Nothing Then
For Each node As System.Xml.XmlNode In configNode.ParentNode.SelectNodes("/sql")
Dim strSQL As String = node.Attributes("sql").Value
Next
End If