xsl-list
[Top] [All Lists]

Re: [xsl] (simple?) xpath question

2008-08-29 15:38:37
I'll do this and get back.


--- On Fri, 8/29/08, Evan Lenz <evan(_at_)evanlenz(_dot_)net> wrote:

From: Evan Lenz <evan(_at_)evanlenz(_dot_)net>
Subject: Re: [xsl] (simple?) xpath question
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date: Friday, August 29, 2008, 1:32 PM
You either need to post more details about the input XML, or
contact 
Altova support. Otherwise, it's pure speculation. The
only thing I can 
think of is that there's a namespace declaration at the
top that you're 
failing to take into account (e.g.,
xmlns="http://example.com";). But 
even then, the name() function should work if prefixes
aren't being used.

Evan

mark bordelon wrote:
Evan,  (and everyone)

Thanks for this great help.
I am seizing the xpath solution so far (keeping the
xsl solution in the back of my mind as plan B)

However, in Altova Spy neither
//*[self::a or self::c]
nor
//*[name() = 'a' or name() = 'c']

is returning any results. Syntax is fine, just no
results.

This is the only tool I have for testing, other than
writing code. Is there a configuration in Altova Spy I need
to tweek?

Mark


--- On Fri, 8/29/08, Evan Lenz
<evan(_at_)evanlenz(_dot_)net> wrote:

  
From: Evan Lenz <evan(_at_)evanlenz(_dot_)net>
Subject: Re: [xsl] (simple?) xpath question
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date: Friday, August 29, 2008, 1:14 PM
A better approach is to use the self axis along
with true
name tests:

//*[self::a or self::c]

The name() function will work too, but it will
also select
<a> and <c> 
elements regardless of what their namespace is
(and it may
give 
inconsistent results in such cases depending on
whether
prefixes are 
used in the input or not). An actual name test in
the
expression, 
indicating that you're only interested in
<a> and
<c> elements that 
aren't in a namespace, is the way to go.

Evan


mozer wrote:
    
Mark,

//*[name() = 'a' or name() =
'c']

is the right syntax

Xmlizer

On Fri, Aug 29, 2008 at 9:57 PM, mark bordelon
      
<markcbordelon(_at_)yahoo(_dot_)com> wrote:
    
  
      
Thanks, Colin,


Although the requirements cannot assume
how many
        
levels there are between the root node and the
desired node,
your solution points me to something like this.
Does this
work?
    
//[name() == "a" and name() ==
        
"c"]
    


--- On Fri, 8/29/08, Colin Paul Adams
        
<colin(_at_)colina(_dot_)demon(_dot_)co(_dot_)uk> wrote:
    
    
        
From: Colin Paul Adams
          
<colin(_at_)colina(_dot_)demon(_dot_)co(_dot_)uk>
    
Subject: Re: [xsl] (simple?) xpath
question
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date: Friday, August 29, 2008, 12:22
PM
      
          
"Mark"
== mark
                  
 
bordelon
    
                
                  
 
<markcbordelon(_at_)yahoo(_dot_)com>
writes:

    Mark> All *help*!    What is
the best
          
way to query
    
xml with xpath
    Mark> to get a disjoint
nodelist?
          
Specifically i
    
want to include
    Mark> just the root node
alongwith a
          
descendent
    
node.    XML:
    Mark> <a>   <b>    
          
<c>
    
</c>  </b> </a>  
XPATH:  
          
//c
    
    Mark> DESIRED RESULT NODELIST:
i.e. not
          
this:
    
<c> </c>   but
    Mark> rather this: <a>  
          
<c>
    
</c> </a>

One possibility is:

//*[name() != "b"]

It depends on your exact requirements.
--
Colin Adams
Preston Lancashire


          

--~------------------------------------------------------------------
    
XSL-List info and archive:

http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:

http://lists.mulberrytech.com/xsl-list/
or e-mail:

          

<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
    
--~--
      
          

        

--~------------------------------------------------------------------
    
XSL-List info and archive: 
        
http://www.mulberrytech.com/xsl/xsl-list
    
To unsubscribe, go to:
        
http://lists.mulberrytech.com/xsl-list/
    
or e-mail:
        

<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
    
--~--


    
        
      

--~------------------------------------------------------------------
    
XSL-List info and archive: 
      
http://www.mulberrytech.com/xsl/xsl-list
    
To unsubscribe, go to:
      
http://lists.mulberrytech.com/xsl-list/
    
or e-mail:
      

<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
    
--~--

  
      

--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:

<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
    


      


--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

  


--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


      

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--