xsl-list
[Top] [All Lists]

How do I locate the parent of this node?

2002-10-16 08:34:04
Help, please! 

For the XML data structure below I'm trying to use a recursive template to
piece together the 'path' of each XMLDataItem element. Thus for the
XMLDataItem whose @Name is 'POIssuedDate' I want the template to return the
path as '/bat:Batch/PurchaseOrder/OrderHeader'

To do this I need an XPath statement inside the template to locate the
parent node of the current node. I've been using...

//XMLDataItem[child::XMLDataItem/@Name=$currentNode/@Name]

(where $currentNode is the parameter passed into the template). However,
it's not finding that parent node - actually, in this instance it's not
finding anything. Any suggestions?


<XMLData>

  <XMLDataItem
    DataItemType="XMLElement"
    Name="bat:Batch">

    <XMLDataItem
      DataItemType="Attribute"
      Name="BatchID"
      Description="Unique identifier for the batch file"
      Source="Customer"
      MandatoryOptional="M"
      Format="Aplhanumeric(20)"
      ValidationNotes="Must only include characters valid for use in Windows
file names (reserved characters, such as : are invalid)">
    </XMLDataItem>

    <XMLDataItem
      DataItemType="Attribute"
      Name="NoOfEntries"
      Description="The number of purchase orders in the batch file"
      Source="Customer"
      MandatoryOptional="M"
      Format="Numeric"
      ValidationNotes="This must match the number of orders within the batch
file">
    </XMLDataItem>

    <XMLDataItem>
      DataItemType="XMLElement"
      Name="PurchaseOrder"

      <XMLDataItem>
        DataItemType="XMLElement"
        Name="OrderHeader"

        <XMLDataItem
          DataItemType="XMLElement"
          Name="POIssuedDate"
          Description="Date/time of creation of the order by the service
provider"
          Source="Customer"
          MandatoryOptional="M"
          Format="ccyymmddThh:mm:ss"
          ValidationNotes="Must be a valid date/time">
        </XMLDataItem>

        <XMLDataItem
          DataItemType="XMLElement"
          Name="RequestedDeliveryDate"
          Description="Date/time by which the order is required by the
service provider"
          Source="Customer"
          MandatoryOptional="M"
          Format="ccyymmddThh:mm:ss"
          ValidationNotes="Must be a valid date/time, recommended to be at
least 7 days from submission; cannot be date in the past. This date/time is
repeated later in the order and both occurrences must be the same.">
        </XMLDataItem>

        <XMLDataItem>
          DataItemType="XMLElement"
          Name="OrderReference"

          <XMLDataItem>
            DataItemType="XMLElement"
            Name="AccountCode"

            <XMLDataItem>
              DataItemType="XMLElement"
              Name="Reference"

              <XMLDataItem
                DataItemType="XMLElement"
                Name="RefNum"
                Description="Billing account reference"
                Source="Customer"
                MandatoryOptional="M"
                Format="Alphanumeric(20)"
                ValidationNotes="This must match the value supplied on
registration">
              </XMLDataItem>
            </XMLDataItem>
          </XMLDataItem>

          <XMLDataItem>
            DataItemType="XMLElement"
            Name="BuyerRefNum"

            <XMLDataItem>
              DataItemType="XMLElement"
              Name="Reference"

              <XMLDataItem
                DataItemType="XMLElement"
                Name="RefNum"
                Description="The unique identifier number for the end user
order"
                Source="Customer"
                CustomerMandatoryOptional="M"
                Format="Alphanumeric(20)"
                ValidationNotes="">
              </XMLDataItem>

            </XMLDataItem>

          </XMLDataItem>

        </XMLDataItem>

      </XMLDataItem>

    </XMLDataItem>

  </XMLDataItem>

</XMLData>
Steve Lake

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>