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