以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  XPath问题,请帮忙看看!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=26651)


--  作者: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高手看看,是什么问题?



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
4,236.328ms