Abhij
Abhij

Reputation: 1272

Join operation in Xpath

I am trying to create a Xpath expression for a join like operation based on common key

Here is my XML and I would like to get all the zone who has network name as

'network-2'

XML:

<tmp>
    <network>
        <id>1</id>
        <name>network-1</name>
    </network>
    <network>
        <id>2</id>
        <name>network-2</name>
    </network>
    <network>
        <id>3</id>
        <name>network-3</name>
    </network>
    <zone>
        <network-id>1</network-id>
        <zone-name>zone1</zone-name>
    </zone>
    <zone>
        <network-id>1</network-id>
        <zone-name>zone2</zone-name>
    </zone>
    <zone>
        <network-id>2</network-id>
        <zone-name>zone3</zone-name>
    </zone>
</tmp>

In network-id is foreign key for zone.

I tried with below xpath expression but it is not working:

/tmp/zone[contains(tmp/network/name,'network-2')]

Upvotes: 2

Views: 176

Answers (1)

splash58
splash58

Reputation: 26153

this part take id from the networ-2

/tmp/network[name[contains(., 'network-2')]]/id 

and this finds zone name with that id

/tmp/zone[network-id= ?? ]/zone-name

full xpath may be so

/tmp/zone[network-id=/tmp/network[name[contains(., 'network-2')]]/id]/zone-name

Upvotes: 3

Related Questions