Quantcast
Channel: Adobe Community: Message List - InDesign Scripting
Viewing all articles
Browse latest Browse all 37788

Re: Getting first occurrence of XML elements

$
0
0

If your structure is built in the same way as above, this XPath works fine:

 

var _root = app.activeDocument.xmlElements.firstItem();

var _firstXrefID001andID002 = _root.evaluateXPathExpression("//p[position()=1]/xref[@rid='id001']|/ /p[position()=2]/xref[@rid='id002']");

app.select(_firstXrefID001andID002);

 

 

If other positions of <p> are possible, e.g.

 

<DOCUMENT>

      <CN>1</CN>

      <CT>Title</CT>

      <p1>Sample Text Sample Text Sample Text Sample Text Sample Text Sample Text</p1>

      <p>Sample Text Sample Text Sample Text <xref rid="id001" ref-type="Test"/> Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text Sample Text <xref rid="id001" ref-type="Test"/> Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text Sample Text <xref rid="id001" ref-type="Test"/> Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id002" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id002" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id002" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id001" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id001" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id001" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id001" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id002" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id002" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id002" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id002" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

      <p>Sample Text Sample Text <xref rid="id002" ref-type="Test"/> Sample Text Sample Text Sample Text Sample Text</p>

</DOCUMENT>

 

You can try these XPathsExpressions and take the first element of resulting Arrays:

 

var _root = app.activeDocument.xmlElements.firstItem();

var _firstXrefID001 = _root.evaluateXPathExpression("//p/xref[@rid='id001']");

app.select(_firstXrefID001[0]);

 

 

var _firstXrefID002 = _root.evaluateXPathExpression("//p/xref[@rid='id002']");

app.select(_firstXrefID002[0]);

 

 

Roland


Viewing all articles
Browse latest Browse all 37788

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>