[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Query regarding usage of <xsl:sort> in MSXML

Subject: RE: Query regarding usage of <xsl:sort> in MSXML
From: "Kevin Collins" <kcollins@xxxxxxx>
Date: Wed, 16 Oct 2002 09:24:28 -0400
msxml sort nodes
Nirmala,

Use the transformNodeToObject method, as documented here:
http://msdn.microsoft.com/library/en-us/xmlsdk/htm/xml_mth_sz_2jp0.asp

It lets you apply a stylesheet to a DOM node and returns a new node. The
above link shows an example in C++.

Kevin

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Nirmala R
> Sent: Wednesday, October 16, 2002 12:37 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE:  Query regarding usage of <xsl:sort> in MSXML
> 
> 
> Sorry, It should have been @name. That was an error while typing.
> 
> My problem is not in the XSL. I would like to introduce this 
> sorting in the
> VC++ code.
> (MSXML).
> 
> Right now to get all the Patient nodes under Media, am doing
> 
> 	LPDISPpaCH lpDisp = myDOMDoc.getElementsByTagName("Media");
> 	IXMLDOMNode aMediaNode(lpDisp);
> 
> 	// Get all the Patient Nodes under Media
> 	lpDisp = aMediaNode.selectNodes("Patient");
> 	IXMLDOMNodeList aPatNodesList(lpDisp);
> 
> Here, while giving the XPath query for SelectNodes, I am 
> giving "Patient" which gives the list of patient nodes under 
> Media in the order how it is present in the XML document. I 
> would like to get all these nodes with the Patient name 
> attribute sorted in descending order.
> 
> Thanks in advance,
> Nirmala
> 
> 
> -----Original Message-----
> From: Kumaraswamy, Sachidanandam 
> [mailto:Sachidanandam.Kumaraswamy@xxxxxxxxxxxxxx]
> Sent: Wednesday, October 16, 2002 9:43 AM
> To: 'nirmala.r@xxxxxxxxxx'
> Subject: RE:  Query regarding usage of <xsl:sort> in MSXML
> 
> 
> I guess this below line should be
> 
> <xsl:sort select="name" data-type="text" order="descending"/>
> 
> Like this.
> 
> <xsl:sort select="@name" data-type="text" order="descending"/>
> 
> And why do you want to do selectsingle mode in VC++ again?You 
> mean are you trying to navigate through the records returned 
> by  sorted and filtered xml?Well,reply me..let me sovle it.
> 
> Thanks,
> Sachi
> 
> 
> 
> Sachidanandam.E.K
> Member Techinical Staff
> 
> HCLT KT-ODC
> sachidanandam.kumaraswamy@xxxxxxxxxxxxxx
> <mailto:sachidanandam.kumaraswamy@xxxxxxxxxxxxxx>
> 
> 
> -----Original Message-----
> From: Nirmala R [mailto:nirmala.r@xxxxxxxxxx]
> Sent: Wednesday, October 16, 2002 9:22 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  Query regarding usage of <xsl:sort> in MSXML
> 
> 
> Hello all,
> 
> I am using MSXML4.0. Have a query regarding usage of 
> <xsl:sort> in MSXML
> VC++ MFC.
> 
> Lets say the hirearchy of my xml dom document is like this:
> 
> <Media>
>   <Patient name=pat1name id=pat1id>
> 	<Study uid=st1.1.uid comments="study1">
> 	</Study>
> 
> 	<Study uid=st1.2.uid comments="study2">
> 	</Study>
>   </Patient>
> 
> <Patient name=pat2name id=pat2id>
> 	<Study uid=st2.1.uid comments="study1">
> 	</Study>
> 
> 	<Study uid=st2.2.uid comments="study2">
> 	</Study>
> </Patient>
> </Media>
> 
> 
> And I have a Stylesheet for this XML like this:
> 
> <xsl:stylesheet version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:template match="Media">
> 
> <xsl:apply-templates select="Patient">
> <xsl:sort select="name" data-type="text" order="descending"/> 
> </xsl:apply-templates>
> 
> </xsl:template>
> 
> <xsl:template match="Patient">
> <xsl:value-of select="@name"/><br/>
> </xsl:template>
> 
> </xsl:stylesheet>
> 
> I want to get the name attribute of all Patients with the 
> order of name in "descending" order.
> 
> I need to do the name using MSXML VC++ MFC. (msxml4.dll is 
> added to the MFC using ole automation)
> 
> {
> 	............................. // Dom Document loaded 
> and dispatch available
> 	LPDISPpaCH lpDisp = myDOMDoc.getElementsByTagName("Media");
> 	IXMLDOMNode aMediaNode(lpDisp);
> 
> 	// Get all the Patient Nodes under Media
> 	lpDisp = aMediaNode.selectNodes("Patient");
> 	IXMLDOMNodeList aPatNodesList(lpDisp);
> 
> 	// Walk through the PatNodesList and get the Attributes
> 	// reset the iterator of the list
> 	aPatNodesList.reset();
> 	for (int i=0; i < aPatNodesList.GetLength(); ++i)
> 	{
> 	      lpDisp = aPatNodesList.GetItem(i);
>                   IXMLDOMNode aPatNode(lpDisp);
> 
> 	      // Get the attributes
> 	     lpDisp = aPatNode.GetAttributes();
> 
> 	    // Attributes come in a NodeMap, from that get the 
> name attribute
> 	    IXMLDOMNamedNodeMap aPatAttributes(lpDisp);
> 
> 	   // name is the 0th attribute (first item)
>               lpDisp = aPatAttributes.GetItem(0);
> 	  IXMLDOMNode aAtt(lpDisp);
> 
> 	COleVariant aVal(aAtt.GetNodeValue());
> 	CString aAttValue(aVal.bstrVal);
>  	  AfxMessageBox(aAttValue);
>          } // for all the Patient Nodes under Media
> 
> QUERY:
> 
> 	Here, I want to get all the Patient nodes in the order 
> of name in descending.
> 	i.e. like pat2name, pat1name instead of pat1name, pat2name.
> 
> 	I understand that there is an API for doing a 
> transformNode where we can mention the stylesheet/string to 
> do the same.
> 	But I am not able to findout where it has to be done, 
> how to combine the selectNodes with this functionality.
> 	Can you tell me how to fitin that sorting functionlaity 
> in the above code?
> 
> 	Can any one of you help me in this regard?
> 
> 
> Thanks in advance,
> Nirmala
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.