How to Use XPath Expressions in CSS
How to Write XPath Expressions
To use XPath expressions in CSS, you need to use the oxy_xpath() function.
        These XPath expressions are used to extract the content from the HTML merged DITA map
        document.
The following example shows how to display the product name
        meta-information before the front page
        title:
      *[class~="front-page/front-page-title"]:before {
    text-align: left;
    content: oxy_xpath("(//*[contains(@class, 'topic/prodname')]/text())[1]");
    display:block;
}Important: 
      Do not use the DITA element names directly. You
        must use the DITA 
@class attribute instead, as these attributes are
        propagated to the HTML elements while the element names can be lost. By using the class
        selectors, you also cover DITA specializations.Tip: 
      Use the "[1]" XPath predicate to select the first value
        from the document. Do not forget the parenthesis between the node to be selected.
For
          example: oxy_xpath("(//*[contains(@class,
          'topic/prodname')]/text())[1]").
Note that the meta-information might be
          copied multiple times in the output, inherited by the <topicref>
          elements, so you might get more values than expected.
Other Notes: 
        
    - You can call the oxy_xpath()function instring-setproperty.
- You can use content extracted using the oxy_xpath()function in both pseudo-elements and @page at-rules.
- Do not use strings as values for pseudo-elements content because they are not supported in them.
How to Debug XPath Expressions
Suppose that you need to display the publication author in the bottom-left part of the cover page.
The ditamap content is the
        following:
      <map>
  <title>The Art of Bike Repair</title>
  <topicmeta>
    <author>John Doe</author>
  </topicmeta>
  ...
</map>To debug an XPath expression:
    - Read the XPath Expressions Guidelines.
- Launch the transformation of the DITA map using your customization CSS.
- Open the [MAP_NAME].merged.html file (from
            the output folder) in Oxygen XML Editor/Author. You will find this inside the
            HTML:<div class="- front-page/front-page front-page"> <div class="- map/topicmeta topicmeta"> <div class="- topic/author author">John Doe</div> </div> <div class="- front-page/front-page-title front-page-title"> <div class="- topic/title title">The Art of Bike Repair</div> </div> </div>
- Activate the XPath Builder view ().
- Paste your XPath expression (for example:
              //*[contains(@class, "front-page/front-page")]/*[contains(@class, "map/topicmeta")]/*[contains(@class, "topic/author")]/text()) and click the Execute XPath button. Check if it returns the expected results. Execute XPath button. Check if it returns the expected results.
- Copy the expression in your customization CSS and define the rules that will use it.
            For example::root { string-set: author oxy_xpath('//*[contains(@class, "front-page/front-page")]\ /*[contains(@class, "map/topicmeta")]/*[contains(@class, "topic/author")]/text()'); } @page front-page { @bottom-left { content: "Created by " string(author); } }Note:The "\" character used in the expression allows the multi-line display without breaking the query.
- Run the transformation again to obtain the desired output.
Note: 
The XPath builder has a function that allows it to display
          the document path of the current element from the editor (). Alternatively, you can right-click the element in the merged document and
          select the Copy XPath action, then paste it in the XPath
          builder.
 
         Settings
              drop-down menu
Settings
              drop-down menu Update on
              cursor move
Update on
              cursor move