WebService output > Tab-separated text?

  • Thread starter Martijn van Exel
  • Start date
M

Martijn van Exel

Hi all,

I'm receiving output from a webservice formatted as follows:

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://tempuri.org/adrloc/levering">
<xs:schema id="Bridgis_DataSet" xmlns=""
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-
microsoft-com:xml-msdata">
<xs:element name="Bridgis_DataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="Bridgis_DataTable">
<xs:complexType>
<xs:sequence>
<xs:element name="PSTK" type="xs:string" minOccurs="0" />
<xs:element name="STRAAT_NEN" type="xs:string"
minOccurs="0" />
<xs:element name="STRAAT_PTT" type="xs:string"
minOccurs="0" />
<xs:element name="STRAAT_OFF" type="xs:string"
minOccurs="0" />
<xs:element name="HUISNUMMER" type="xs:decimal"
minOccurs="0" />
<xs:element name="TOEVOEGING" type="xs:string"
minOccurs="0" />
<xs:element name="PERCEELCOD" type="xs:string"
minOccurs="0" />
<xs:element name="PLAATS_NEN" type="xs:string"
minOccurs="0" />
<xs:element name="PLAATS_PTT" type="xs:string"
minOccurs="0" />
<xs:element name="GEMEENTE" type="xs:string"
minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<Bridgis_DataSet xmlns="">
<Bridgis_DataTable diffgr:id="Bridgis_DataTable1"
msdata:rowOrder="0" diffgr:hasChanges="inserted">
<PSTK>3544AA</PSTK>
<STRAAT_NEN>Zandweg </STRAAT_NEN>
<STRAAT_PTT>ZANDWG </STRAAT_PTT>
<STRAAT_OFF>Zandweg
</STRAAT_OFF>
<HUISNUMMER>10</HUISNUMMER>
<TOEVOEGING> </TOEVOEGING>
<PERCEELCOD>T</PERCEELCOD>
<PLAATS_NEN>UTRECHT </PLAATS_NEN>
<PLAATS_PTT>UTRECHT </PLAATS_PTT>
<GEMEENTE>UTRECHT </GEMEENTE>
</Bridgis_DataTable>
<Bridgis_DataTable diffgr:id="Bridgis_DataTable2"
msdata:rowOrder="1" diffgr:hasChanges="inserted">
<PSTK>3544AA</PSTK>
<STRAAT_NEN>Zandweg </STRAAT_NEN>
<STRAAT_PTT>ZANDWG </STRAAT_PTT>
<STRAAT_OFF>Zandweg
</STRAAT_OFF>
<HUISNUMMER>9</HUISNUMMER>
<TOEVOEGING> </TOEVOEGING>
<PERCEELCOD>T</PERCEELCOD>
<PLAATS_NEN>UTRECHT </PLAATS_NEN>
<PLAATS_PTT>UTRECHT </PLAATS_PTT>
<GEMEENTE>UTRECHT </GEMEENTE>
</Bridgis_DataTable>
</Bridgis_DataSet>
</diffgr:diffgram>
</DataSet>

The number of records can be very large. I need to transform this to a tab-
separated text file within an ASP script. At the moment I go about this as
follows (all code below is JScript):

---CODE---
strXML=String(rsXML(0));
oXMLDOM.loadXML(strXML);
oDatanodes=oXMLDOM.getElementsByTagName("Bridgis_DataTable");
strOut+=WriteRows(oDatanodes);
---END---

Where WriteRows is:

---CODE---
function WriteRows(oDataNodes) {
strOut="";
for(i=0;i<oDatanodes.length;i++) {
nRecords++;
aCh=new Array();
oDatanode=oDatanodes.item(i);
nChildren=oDatanode.childNodes.length;
for(j=0;j<nChildren;j++) {
oChild=oDatanode.childNodes.item(j);
aCh.push(oChild.text);
}
strOut+=aCh.join("\t")+"\n";
}
return strOut;
}
---END---

This is a very expensive operation which is not acceptable because the XML
recordsets i get are very large (can be up to 1,000,000 records), so I am
looking to implement a more efficient way to do this. I'm thinking about
XSLT but don't know how I would integrate this into my ASP script. Any
ideas?

Thanks,
Martijn
 
J

Joris Gillis

This is a very expensive operation which is not acceptable because the XML
recordsets i get are very large (can be up to 1,000,000 records), so I am
looking to implement a more efficient way to do this. I'm thinking about
XSLT but don't know how I would integrate this into my ASP script. Any
ideas?
Hi,

XSLT seems a bad idea in this case, I doubt if it would more efficient. The fastest way to do it is probably by ignoring the fact that it is XML and handling it as plain text.

regards,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,998
Messages
2,570,242
Members
46,834
Latest member
vina0631

Latest Threads

Top