All,
I am tearing my hair out on this one. I've checked Google and the
newsgroups, and can't seem to solve it...
My problem:
I have an XML document that I pass to another function with an XPath
query (note I may be using the wrong terminology - I don't use XML very
often). The function then uses that XPath query with SelectSingleNod e
to get some details out of the XML document (effectively an ID for the
document).
My document is an XML representation of an ADO recordset. The query is
trying to get the FPTAdviserID out of it. Note that I have to use
SelectSingleNod e (or more accurately, the code I am calling uses it for
tons of other XML files, so I don't want to fiddle with it
unnecessarily).
Code I have tried includes stuff like:
Dim x As New XmlDocument()
x.Load("d:\curr ent\bin\Adviser .XML")
MsgBox(x.Select SingleNode("\\x ml\rs:data\z:ro w\@FPTAdviserID ").Value)
MsgBox(x.Select SingleNode("xml \rs:data\z:row\ @FPTAdviserID") .Value)
MsgBox(x.Select SingleNode("\\x ml\rs:data\z:ro w").Value)
MsgBox(x.Select SingleNode("xml \rs\z").Value)
MsgBox(x.Select SingleNode("xml \data\row").Val ue)
MsgBox(x.Docume ntElement.Selec tSingleNode("rs :data\z:row").V alue)
MsgBox(x.Docume ntElement.Selec tSingleNode("rs :data\z:row").V alue)
It just doesn't seem to like the 'rs:data' thing. There is stuff on
Google about namespaces for XML DOMs, but all the tips seem to relate
to the COM XML components, and I can't find matching suggestions for
VB.NET.
Can anyone provide the correct parameters for SelectSingleNod e (note
again that I need to use SelectSingleNod e)?
My XML is as follows:
<xml xmlns:s='uuid:B DC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid: C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:s chemas-microsoft-com:rowset'
xmlns:z='#Rowse tSchema'>
<s:Schema id='RowsetSchem a'>
<s:ElementTyp e name='row' content='eltOnl y' rs:updatable='t rue'>
<s:AttributeTyp e name='ABN' rs:number='1' rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' AdviserID' rs:autoincremen t='true'>
<s:datatype dt:type='string ' dt:maxLength='1 1'/>
</s:AttributeType >
<s:AttributeTyp e name='Address1' rs:number='2'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' SaveDateTime'>
<s:datatype dt:type='string ' dt:maxLength='6 0'/>
</s:AttributeType >
<s:AttributeTyp e name='Address2' rs:number='3'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Company'>
<s:datatype dt:type='string ' dt:maxLength='6 0'/>
</s:AttributeType >
<s:AttributeTyp e name='Address3' rs:number='4'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Address1'>
<s:datatype dt:type='string ' dt:maxLength='6 0'/>
</s:AttributeType >
<s:AttributeTyp e name='AdviserID ' rs:number='5'
rs:maydefer='tr ue'
rs:writeunknown ='true' rs:basetable='A dvisers'
rs:basecolumn=' Address2'>
<s:datatype dt:type='int' dt:maxLength='4 '
rs:precision='1 0'
rs:fixedlength= 'true'/>
</s:AttributeType >
<s:AttributeTyp e name='Company' rs:number='6'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Address3'>
<s:datatype dt:type='string ' dt:maxLength='5 0'/>
</s:AttributeType >
<s:AttributeTyp e name='Email' rs:number='7'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Suburb'>
<s:datatype dt:type='string ' dt:maxLength='1 00'/>
</s:AttributeType >
<s:AttributeTyp e name='Fax' rs:number='8' rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' State'>
<s:datatype dt:type='string ' dt:maxLength='2 5'/>
</s:AttributeType >
<s:AttributeTyp e name='FPTAdvise rID' rs:number='9'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Postcode'>
<s:datatype dt:type='string ' dt:maxLength='2 0'/>
</s:AttributeType >
<s:AttributeTyp e name='Phone' rs:number='10'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Phone'>
<s:datatype dt:type='string ' dt:maxLength='2 5'/>
</s:AttributeType >
<s:AttributeTyp e name='Postcode' rs:number='11'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Fax'>
<s:datatype dt:type='string ' dt:maxLength='4 '/>
</s:AttributeType >
<s:AttributeTyp e name='SaveDateT ime' rs:number='12'
rs:nullable='tr ue' rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers' rs:basecolumn=' Email'>
<s:datatype dt:type='dateTi me' rs:dbtype='vari antdate'
dt:maxLength='1 6' rs:fixedlength= 'true'/>
</s:AttributeType >
<s:AttributeTyp e name='State' rs:number='13'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' ABN'>
<s:datatype dt:type='string ' dt:maxLength='3 '/>
</s:AttributeType >
<s:AttributeTyp e name='Suburb' rs:number='14'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' FPTAdviserID'>
<s:datatype dt:type='string ' dt:maxLength='2 0'/>
</s:AttributeType >
<s:extends type='rs:rowbas e'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row ABN='1234987' Address1='' Address2='asdas d' Address3=''
AdviserID='2' Company='Da;lk' Email='' Fax=''
FPTAdviserID='1 000100000001'
Phone='' Postcode='' SaveDateTime='2 005-10-17T16:45:59'
State='' Suburb=''/>
</rs:data>
</xml>
Thanks
Matthew
I am tearing my hair out on this one. I've checked Google and the
newsgroups, and can't seem to solve it...
My problem:
I have an XML document that I pass to another function with an XPath
query (note I may be using the wrong terminology - I don't use XML very
often). The function then uses that XPath query with SelectSingleNod e
to get some details out of the XML document (effectively an ID for the
document).
My document is an XML representation of an ADO recordset. The query is
trying to get the FPTAdviserID out of it. Note that I have to use
SelectSingleNod e (or more accurately, the code I am calling uses it for
tons of other XML files, so I don't want to fiddle with it
unnecessarily).
Code I have tried includes stuff like:
Dim x As New XmlDocument()
x.Load("d:\curr ent\bin\Adviser .XML")
MsgBox(x.Select SingleNode("\\x ml\rs:data\z:ro w\@FPTAdviserID ").Value)
MsgBox(x.Select SingleNode("xml \rs:data\z:row\ @FPTAdviserID") .Value)
MsgBox(x.Select SingleNode("\\x ml\rs:data\z:ro w").Value)
MsgBox(x.Select SingleNode("xml \rs\z").Value)
MsgBox(x.Select SingleNode("xml \data\row").Val ue)
MsgBox(x.Docume ntElement.Selec tSingleNode("rs :data\z:row").V alue)
MsgBox(x.Docume ntElement.Selec tSingleNode("rs :data\z:row").V alue)
It just doesn't seem to like the 'rs:data' thing. There is stuff on
Google about namespaces for XML DOMs, but all the tips seem to relate
to the COM XML components, and I can't find matching suggestions for
VB.NET.
Can anyone provide the correct parameters for SelectSingleNod e (note
again that I need to use SelectSingleNod e)?
My XML is as follows:
<xml xmlns:s='uuid:B DC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid: C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:s chemas-microsoft-com:rowset'
xmlns:z='#Rowse tSchema'>
<s:Schema id='RowsetSchem a'>
<s:ElementTyp e name='row' content='eltOnl y' rs:updatable='t rue'>
<s:AttributeTyp e name='ABN' rs:number='1' rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' AdviserID' rs:autoincremen t='true'>
<s:datatype dt:type='string ' dt:maxLength='1 1'/>
</s:AttributeType >
<s:AttributeTyp e name='Address1' rs:number='2'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' SaveDateTime'>
<s:datatype dt:type='string ' dt:maxLength='6 0'/>
</s:AttributeType >
<s:AttributeTyp e name='Address2' rs:number='3'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Company'>
<s:datatype dt:type='string ' dt:maxLength='6 0'/>
</s:AttributeType >
<s:AttributeTyp e name='Address3' rs:number='4'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Address1'>
<s:datatype dt:type='string ' dt:maxLength='6 0'/>
</s:AttributeType >
<s:AttributeTyp e name='AdviserID ' rs:number='5'
rs:maydefer='tr ue'
rs:writeunknown ='true' rs:basetable='A dvisers'
rs:basecolumn=' Address2'>
<s:datatype dt:type='int' dt:maxLength='4 '
rs:precision='1 0'
rs:fixedlength= 'true'/>
</s:AttributeType >
<s:AttributeTyp e name='Company' rs:number='6'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Address3'>
<s:datatype dt:type='string ' dt:maxLength='5 0'/>
</s:AttributeType >
<s:AttributeTyp e name='Email' rs:number='7'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Suburb'>
<s:datatype dt:type='string ' dt:maxLength='1 00'/>
</s:AttributeType >
<s:AttributeTyp e name='Fax' rs:number='8' rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' State'>
<s:datatype dt:type='string ' dt:maxLength='2 5'/>
</s:AttributeType >
<s:AttributeTyp e name='FPTAdvise rID' rs:number='9'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Postcode'>
<s:datatype dt:type='string ' dt:maxLength='2 0'/>
</s:AttributeType >
<s:AttributeTyp e name='Phone' rs:number='10'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Phone'>
<s:datatype dt:type='string ' dt:maxLength='2 5'/>
</s:AttributeType >
<s:AttributeTyp e name='Postcode' rs:number='11'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' Fax'>
<s:datatype dt:type='string ' dt:maxLength='4 '/>
</s:AttributeType >
<s:AttributeTyp e name='SaveDateT ime' rs:number='12'
rs:nullable='tr ue' rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers' rs:basecolumn=' Email'>
<s:datatype dt:type='dateTi me' rs:dbtype='vari antdate'
dt:maxLength='1 6' rs:fixedlength= 'true'/>
</s:AttributeType >
<s:AttributeTyp e name='State' rs:number='13'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' ABN'>
<s:datatype dt:type='string ' dt:maxLength='3 '/>
</s:AttributeType >
<s:AttributeTyp e name='Suburb' rs:number='14'
rs:nullable='tr ue'
rs:maydefer='tr ue' rs:write='true'
rs:basetable='A dvisers'
rs:basecolumn=' FPTAdviserID'>
<s:datatype dt:type='string ' dt:maxLength='2 0'/>
</s:AttributeType >
<s:extends type='rs:rowbas e'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row ABN='1234987' Address1='' Address2='asdas d' Address3=''
AdviserID='2' Company='Da;lk' Email='' Fax=''
FPTAdviserID='1 000100000001'
Phone='' Postcode='' SaveDateTime='2 005-10-17T16:45:59'
State='' Suburb=''/>
</rs:data>
</xml>
Thanks
Matthew
Comment