xsl-list
[Top] [All Lists]

Re: Selecting an Attribute Based on Conditions of a Subsequent Node

2003-01-31 10:39:05
Jim,

Assuming the Account element is the context node, you can use XPath:

child::NodeName[child::NodeType/attribute::Value='Primary']/attribute::Name

or (abbreviated)

NodeName[NodeType/@Value='Primary']/@Name

and likewise

NodeName[NodeType/@Value='Secondary'/@Name

(If your context node is different, adjust the path accordingly.)

Cheers,
Wendell

At 12:00 PM 1/31/2003, you wrote:
I am trying to select an attribute from a list of nodes that is conditional based on the contents of a node below it.

Here is the sample XML:

<?xml version="1.0" encoding="UTF-8"?>
<Account>
        <NodeName Name="Acme">
                <NodeType Value="Primary"/>
        </NodeName>
        <NodeName Name="Widget">
                <NodeType Value="Secondary"/>
        </NodeName>
</Account>

What I want is to select @Name from NodeName based on the @Value attribute in the NodeType element. In other words, I want to determine which @Name attribute is Primary and which one is Secondary. This XML is generated out of a database so its format is not very good and not always sorted. This prevents me from doing this based strictly on position.


======================================================================
Wendell Piez                            
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


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



<Prev in Thread] Current Thread [Next in Thread>
  • Re: Selecting an Attribute Based on Conditions of a Subsequent Node, Wendell Piez <=