Adobe 0046100128056 Scripting Guide - Page 198
Extracting XML elements with XML rules
![]() |
UPC - 718659087562
View all Adobe 0046100128056 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 198 highlights
CHAPTER 13: XML Rules XML Rules Examples 198 //XPath will match on every description in the XML structure. this.xpath = "/devices/device/description"; // Define the apply function. this.apply = function(myElement, myRuleProcessor){ var myFoundItems = myElement.texts.item(0).findGrep(); if(myFoundItems.length != 0){ myElement.texts.item(0).fillColor = app.documents.item(0).swatches.item(-1); } return true; } } function myResetFindChangeGrep(){ app.findGrepPreferences = NothingEnum.nothing; app.changeGrepPreferences = NothingEnum.nothing; } } Extracting XML elements with XML rules XSLT often is used to extract a specific subset of data from an XML file. You can accomplish the same thing using XML rules. The following sample script shows how to duplicate a set of sample XML elements and move them to another position in the XML element hierarchy. Note that you must add the duplicated XML elements at a point in the XML structure that will not be matched by the XML rule, or you run the risk of creating an endless loop. For the complete script, see ExtractSubset. main(); function main(){ if (app.documents.length != 0){ var myDocument = app.documents.item(0); var myRuleSet = new Array (new ExtractVCO); var myMarkupTag = myDocument.xmlTags.add("VCOs"); var myContainerElement = myDocument.xmlElements.item(0).xmlElements.add(myMarkupTag); with(myDocument){ var elements = xmlElements; __processRuleSet(elements.item(0), myRuleSet); } } else{ alert("No open document"); } function ExtractVCO(){ var myNewElement; this.name = "ExtractVCO"; this.xpath = "/devices/device/type"; this.apply = function(myElement, myRuleProcessor){ with(myElement){ if(myElement.texts.item(0).contents == "VCO"){ myNewElement = myElement.parent.duplicate(); myNewElement.move(LocationOptions.atEnd, app.documents.item(0).xmlElements.item(0).xmlElements.item(-1)); } } return true; } } }
![](/manual_guide/products/adobe-0046100128056-scripting-guide-5e19d6b/198.png)