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.   

    可以使用XPath来得到所有的(//chen/config )所有的config结使用XmlNodeList遍历所有的Node来取出合适的Sql中的Text然后去查询!
    1、使用XmlDocument装载Xml
    2、使用XPath选择XmlDoc中的节点
    3、遍历找到指定的XmlNode
    4、取出XmlNode里面子节点<Sql>的值。不知道你是不是这个意思?
      

  2.   

    你的XML结构不太清楚
    假设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