-- 作者:netfans
-- 发布时间:1/20/2006 3:15:00 PM
-- XPath问题,请帮忙看看!
XPath问题,请帮忙看看! xml文件格式: <?xml version="1.0" encoding="utf-8" ?> - <DataSet xmlns="http://tempuri.org/"> - <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="zh-CN"> - <xs:complexType> - <xs:choice maxOccurs="unbounded"> - <xs:element name="Files"> - <xs:complexType> - <xs:sequence> <xs:element name="Id" type="xs:int" minOccurs="0" /> <xs:element name="FId" type="xs:string" minOccurs="0" /> <xs:element name="Title" type="xs:string" minOccurs="0" /> <xs:element name="Content" type="xs:string" minOccurs="0" /> <xs:element name="FUnit" type="xs:string" minOccurs="0" /> <xs:element name="FDate" type="xs:dateTime" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> .................... 处理程序: Public Function DatasetToRecordset(ByVal voNL As IXMLDOMNodeList, ByVal vsTableName As String) As ADODB.Recordset Dim iXMLTableNode As IXMLDOMNode Dim iXMLRecordNode As IXMLDOMNode Dim iXMLFieldNode As IXMLDOMNode Dim iXMLNodeList As IXMLDOMNodeList Dim retRS As ADODB.Recordset Dim sXPath As String ' 使用xs schema生成记录集 sXPath = "//xs:element [@name=""" & vsTableName & """]/xs:complexType/xs:sequence" Set iXMLTableNode = voNL.Item(1).selectSingleNode(sXPath) Set retRS = New ADODB.Recordset For Each iXMLFieldNode In iXMLTableNode.childNodes If Not iXMLFieldNode.Attributes Is Nothing Then Call retRS.Fields.Append(iXMLFieldNode.Attributes(0).Text, GetDataType(iXMLFieldNode.Attributes(1).Text), 512) End If .................... End Function 在Set iXMLTableNode = voNL.Item(1).selectSingleNode(sXPath)出错,错误信息为: Reference to undeclared namespace prefix: 'xs' 因为初次接触xml的转换,请xml高手看看,是什么问题?
|