selecting issue

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

selecting issue

trenttorkelson
this is my xml:

</ROOT>
<Item Segment="COMFIN" Dept="Blackberry" Category1="Active Directory" Category2="Password Reset" Code="Reset" />
<Item Segment="GEHC" Dept="Remote Support" Category1="Hardware" Category2="Cable" Code="Replace" />
<Item Segment="Plastics" Dept="Blackberry" Category1="Software" Category2="Casing" Code="Install" />
<Item Segment="Plastics" Dept="Remote Support" Category1="Hardware" Category2="Casing" Code="Repair" />
<Item Segment="Plastics" Dept="Site Support" Category1="Hardware" Category2="Parts &amp; Vendor 5.0" Code="Replace" />
</ROOT>

this is my query:

"/ROOT/Item[@Dept='Site Support' and not(@Category1=preceding::Item/@Category1)]/@Category1"
returns nothing

for those of you that it isn't plain to see, i'm attempting to select all Item nodes that have a attrib of Dept/with value of Site Support, and also, the preceding nodes must not have duplicate category1 values.
then the query gets the category1 attribute nodes from the Item nodes.

This does not work correctly on this expression, but it does here:

"/ROOT/Item[@Dept='Blackberry' and not(@Category1=preceding::Item/@Category1)]/@Category1"
returns active directory, and software

my assumption is that the reason that i get no results on the first query is that there is only one dept attribute with the site support value, and because of the way that i've formatted my query string, it removes the nodes that it finds in the first expression when it test's the second expression. that's my guess though..

any help? please?
Reply | Threaded
Open this post in threaded view
|

Re: selecting issue

trenttorkelson
i already fixed this in a question to expert-exchange:

http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/XML/XPath/Q_23668679.html



trenttorkelson wrote
this is my xml:

</ROOT>
<Item Segment="COMFIN" Dept="Blackberry" Category1="Active Directory" Category2="Password Reset" Code="Reset" />
<Item Segment="GEHC" Dept="Remote Support" Category1="Hardware" Category2="Cable" Code="Replace" />
<Item Segment="Plastics" Dept="Blackberry" Category1="Software" Category2="Casing" Code="Install" />
<Item Segment="Plastics" Dept="Remote Support" Category1="Hardware" Category2="Casing" Code="Repair" />
<Item Segment="Plastics" Dept="Site Support" Category1="Hardware" Category2="Parts &amp; Vendor 5.0" Code="Replace" />
</ROOT>

this is my query:

"/ROOT/Item[@Dept='Site Support' and not(@Category1=preceding::Item/@Category1)]/@Category1"
returns nothing

for those of you that it isn't plain to see, i'm attempting to select all Item nodes that have a attrib of Dept/with value of Site Support, and also, the preceding nodes must not have duplicate category1 values.
then the query gets the category1 attribute nodes from the Item nodes.

This does not work correctly on this expression, but it does here:

"/ROOT/Item[@Dept='Blackberry' and not(@Category1=preceding::Item/@Category1)]/@Category1"
returns active directory, and software

my assumption is that the reason that i get no results on the first query is that there is only one dept attribute with the site support value, and because of the way that i've formatted my query string, it removes the nodes that it finds in the first expression when it test's the second expression. that's my guess though..

any help? please?