Hi
I have an XML-document containing jobpositions that looks something like this:
<Envelope>
<TransactInfo timeStamp="2003-05-08T00:01:24">
<TransactId>OJ-WS-03</TransactId>
</TransactInfo>
<Packet>
<PacketInfo>
<PacketID>1</PacketID>
</PacketInfo>
<PayLoad>
<JobPositionPosting status="active">
<JobPositionInformation>
<JobPositionInformation>
<JobPositionTitle>Experienced xPath-developer</JobPositionTitle>
<OccupationalGroup registryURI="" id="" registryCategory="occgroup" language="en" ssyk="2330">140</OccupationalGroup>
<JobPositionDescription>
<JobPositionPurpose />
<JobPositionTasks>Help with xPath-codeing.</JobPositionTasks>
<JobPositionLocation>
<LocationSummary>
<Municipality>2081</Municipality>
<Region>Borlange</Region>
<CountryCode>SE</CountryCode>
<PostalCode>78181</PostalCode>
</LocationSummary>
</JobPositionLocation>
<Classification>
<Schedule />
<Duration>
<Temporary>
<TermLength>2003-08-11 </TermLength>
<SummaryText>2003-08-11 </SummaryText>
</Temporary>
<SummaryText>Free of charge</SummaryText>
</Duration>
</Classification>
<CompensationDescription>
<SummaryText>None except for a big thankyou.</SummaryText>
</CompensationDescription>
</JobPositionDescription>
<JobPositionRequirements>
<QualificationsRequired>
<P>Maybe some knowledge of xPath.</P>
</QualificationsRequired>
</JobPositionRequirements>
</JobPositionInformation>
</JobPositionPosting>
</PayLoad>
</Packet>
<Packet>
...
</Packet>
<Envelope>
I want to list all JobPositionTitle and Region to the user - and I need PacketID to be able to identify the posts:
$xmlHeaders = $xPath->match( "//PacketID | //JobPositionTitle | //Region" );
To list them I'd have to do something like this:
for ( $i=1; $i <= sizeof( $stuff ); $i++ )
{
$data = $xPath->getData( $xmlHeaders[$i-1] );
echo $data . "<br>";
}
That would result in something like this:
[data of element PacketID1]
[data of element JobPositionTitle1]
[data of element Region1]
[data of element PacketID2]
[data of element JobPositionTitle2]
[data of element Region2]
[data of element PacketID3]
[data of element JobPositionTitle3]
[data of element Region3]
[data of element PacketID4]
[data of element JobPositionTitle4]
[data of element Region4]
What would happend if one PacketID would be missing??? no2 for instance - wouldnt I get this:
[data of element PacketID1]
[data of element JobPositionTitle1]
[data of element Region1]
[data of element PacketID3] <= wrong id!!!
[data of element JobPositionTitle2]
[data of element Region2]
[data of element PacketID4]
[data of element JobPositionTitle3]
[data of element Region3]
[data of element JobPositionTitle4]
[data of element Region4]
How do I prevent that?
Well - lets pretend we've solved that.
Now the user selects JobPositionTitle3.
Now I want to show everything in packet3 to the user - how do I do that?
There is this xPath->selectNodes( "//PacketID" )-function
but I cant figure out how to select a parent node of a known PacketID.
Is this really such a unique problem? Ive been searching the web for almost two days now and havent found one example thats even close to this.
Sorry for the long post...
Thanks!
Henrik