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

Subject: Re: [xsl] Selecting an Attribute Based on Conditions of a Subsequent Node
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Fri, 31 Jan 2003 12:39:05 -0500
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@xxxxxxxxxxxxxxxx
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



Current Thread