Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Diagrams

Appendix C: XPath Expressions

  • Last UpdatedMar 28, 2024
  • 2 minute read

XPath Expressions can be used when mapping system/project specific attributes from the source files to schematic or user defined database attributes. For further information, refer to XPath Expression Builder Dialog.

This Appendix provides a brief guide to the use of XPath Expressions. For further information refer to: http://www.w3.org/TR/xpath.

Within an Expression:

  • XML element names are represented in their simplest form as the tag name, for example, <MyElement> is represented as MyElement.

  • XML attribute names in their simplest form are prefixed with the @ character, for example, the attribute MyAttribute="value" is represented as @MyAttribute

  • An expression is built up from a series of these LocationPaths separated by the ‘/’ character. For example the attribute from <MyElement @MyAttribute /> may be obtained using MyElement/@MyAttribute

  • More complex LocationPaths exist, such as:

    Long Form

    Short Form

    Description

    child::MyElement

    MyElement

    MyElement child element of the current context.

    attribute::MyAttribute

    @MyAttribute

    MyAttribute XML attribute of the current context.

    child::*

    *

    All child elements of the current context.

    attribute::*

    @

    All attributes of the current context.

    parent::*

    ..

    The parent element of the current context.

    ancestor::MyElement

    The MyElement element that the current context is in.

    self ::*

    .

    The current context.

    /descendants::*

    //*

    All XML elements of the document.

    self::*//

    //

    All descendant XML element of the current context.

    following-sibling::*

    The next XML element if one exists as a child of the same parent element.

    preceding-sibling::*

    the previous element that is a child of the same parent element as the current context.

  • Predicates can be added to each LocationPath in order to further constrain the selected nodes. Predicates are enclosed inside '[' and ']' characters. For example:

    MyElement[@MyAttribute] selects MyElement XML elements that have an attribute with the name MyAttribute

    MyElement[@MyAttribute = 'Motor'] selects the MyElement XML elements that have an attribute with the name MyAttribute that has a value of ‘Motor’

    MyElement[1] selects the first MyElement child of the current context

    MyElement[last()] selects the last MyElement child of the current context

  • Data can then be manipulated using functions such as:

    normalize-space(MyElement) takes the textual contents from the MyElement element and replaces all whitespace with a single space character

    translate(MyElement/@Tag,'-','_') replaces and '-' characters with a '_' character from the Tag attribute of MyElement

    concat(MyElement[1],MyElement[2]) concatenates the results of MyElement[1] and MyElement[2]

    count(MyElement) The number of MyElement elements in the current context

    name(.) Name of the current element (including namespace)

    local-name(.) the local name of the current element (excluding namespace)

  • A Boolean expression is one that returns a value of True or False. This is usually achieved using an equivalence or existence test such as:

    @MyAttribute = 'SomeValue' MyAttribute has a value of SomeValue

    @MyAttribute MyAttribute present on current context

    Count(MyElement) = 1 1 element named MyElement in the current context

Related Links
TitleResults for “How to create a CRG?”Also Available in