OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] XPath problem with selectSingleNode in MSXML4

[ Lists Home | Date Index | Thread Index ]
  • To: "John Sands" <wonkowatson@yahoo.com>,<xml-dev@lists.xml.org>
  • Subject: RE: [xml-dev] XPath problem with selectSingleNode in MSXML4
  • From: "Dare Obasanjo" <dareo@microsoft.com>
  • Date: Mon, 8 Apr 2002 12:51:27 -0700
  • Thread-index: AcHesAhKz69YZA1ZRTq55ipzpPakEQAhTMQQ
  • Thread-topic: [xml-dev] XPath problem with selectSingleNode in MSXML4

> -----Original Message-----
> From: John Sands [mailto:wonkowatson@yahoo.com] 
> Sent: Sunday, April 07, 2002 8:46 PM
> To: xml-dev@lists.xml.org
> Subject: [xml-dev] XPath problem with selectSingleNode in MSXML4
> 
> 
> I have a file called config.xml like this:
> 
>  <?xml version="1.0"?>
>  <config>
>   <link href="tree.asp"/>
>   <link href="search.asp" default="true" />
>  </config>
> 
> This Javascript ASP code finds the href with the 
> "default=true" attribute:
> 
>  var xmldoc = new ActiveXObject("MSXML2.DOMDocument.4.0");
>  xmldoc.async = false;  xmldoc.load(Server.MapPath("config.xml"));
>  xmldoc.setProperty("SelectionLanguage", "XPath");
>  var defaultpage = xmldoc.selectSingleNode("/config/link[@default]");
>  var href = defaultpage.getAttribute("href");
> 
> My question is, why doesn't this code find it as well?
> 
>  var xmldoc = new ActiveXObject("MSXML2.DOMDocument.4.0");
>  xmldoc.async = false;  xmldoc.load(Server.MapPath("config.xml"));
>  xmldoc.setProperty("SelectionLanguage", "XPath");
>  var href = xmldoc.selectSingleNode("/config/link[@default]/@href");
> 

The latter code does find it as well. The following code works fine for
me 

 var xmldoc = new ActiveXObject("MSXML2.DOMDocument.4.0");
 xmldoc.async = false;   
 xmldoc.loadXML("<config><link href=\"tree.asp\"/><link
href=\"search.asp\" default=\"true\" /></config>");
 WScript.Echo(xmldoc.xml);  
 xmldoc.setProperty("SelectionLanguage", "XPath");
 var defaultpage = xmldoc.selectSingleNode("/config/link[@default]");
 var href = defaultpage.getAttribute("href");
 WScript.Echo("1: " + href);
 href = xmldoc.selectSingleNode("/config/link[@default]/@href");
 WScript.Echo("2: " + href.value);

when executed using Windows scripting host. The difference in behavior
is because getAttribute returns a string while selectSingleNode returns
an object.  

Hope this helps. 

PS: Ignore my prior offlist email, this is NOT a bug. 

-- 
PITHY WORDS OF WISDOM 
A journey of a thousand miles begins with a cash advance.
 
This posting is provided "AS IS" with no warranties, and confers no
rights. 
You assume all risk for your use. (c) 2002 Microsoft Corporation. All
rights reserved.







 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS