Add xml tag to specific words in a text frame

Dear all,
I'm pretty sure this can't be too much of a hassle, but after hours of experimenting, searching and reading I can't seem to look at it from the right angle. I'm trying to find a way to search for a specific word ('Figure', in my case) in a given text frame, and add a corresponding XML tag to it automatically. I've found plenty of information on how to apply it to a page item as a whole, but from there no approach seems to work. Seeing as I'm fairly new to InDesign scripting, any nudge in the right direction would be an immense help.
Kind regards and thanks in advance,
Julian

Hi Julian,
Is this you asking?
var doc = app.activeDocument;
app.findTextPreferences.findWhat = "figure";
var found = doc.findText();
for(var i =0;i<found.length;i++)
        doc.xmlElements[0].xmlElements.add({markupTag:"figure", xmlContent:found[i]});
Regards,
Chinna

Similar Messages

  • Add xml Tags in Indesign CS4 by Apple/Java script

    Hi,
    All, I'm new to Indesign Scripting, and I'm hoping someone can help me with the following add xml tags in my xml indesign cs4 files.
    I have IDML (ETMV2) xml Indesign CS4 files. But i have lots of powermath equation without xml tags. So i want how i can insert xml tags.
    My probleam like this =>
    <no open xml tags>[&x^{2}+y_{3}&]<no close xml tags>
    I want like this (But i do manualy)
    <inlineequation><inlinemediaobject><textobject role="xpressmath">[&x^{2}+y_{3}&</textobject></inlinemediaobject></inlineequation>
    Can anyone write/suggest me how i can add xml Tags. By Apple/Java Script
    Any insight is appreciated!
    snegig

    Hi,
    John Hawkinson thank you so much your suggestion.
    I am new  this type of discusion (on this page). So i think anybody could not replay my answer. So i repost my question.
    I want insert tags in my Indesign CS4 files. Is this posible when i select my powermath equaiton then run script. Script add tags automatically before/after my equation. Please ignore IDML word.
    Yes i an comfortable with XSLT presently i working with Pearson ETMV2.
    I have one more question when i past my snapshot its appear properly but when i agin see my commant then my snapshot disappear (see small blue rectangle).
    Thank you John again i am new in this industry please guide.
    snegig

  • Edit JS Script CS4 (Add XML Tags All pages automatically)

    Hi, all Scripter
    I have a javascript for add xml tags (ETMV2 Pearson, InDesign CS4).  We have select my powermath equation data then run script. Script automatically insert xml tags both side (open/close). But we select one by one then run script its time taking.
    var d=app.activeDocument,
    root=d.xmlElements[0],
    ie = root.xmlElements.add("inlineequation", app.selection[0]),
    im = root.xmlElements.add("inlinemediaobject", ie.texts[0]),
    to = root.xmlElements.add("textobject", im.texts[0]);
    to.xmlAttributes.add("role", "xpressmath");
    Example 1: My powermath equation data (InDesign CS4)
    [&x^{2}+y *frac*{1}{2x}&]
    Select powermath equation data then run javascript below mention. Script insert xml tags.
    <inlineequation><inlinemediaobject><textobject>[&x^{2}+y *frac*{1}{2x}&]</inlineequation></inlinemediaobject></textobject>
    Its time taking and select one by one
    Result:
    My main concern is that is this possible script find open [& and close &] all poermath equation data automatically then insert (add) xml tags all pages.
    Thank/Regard
    snegig

    Hi,
    John Hawkinson thank you so much your suggestion.
    I am new  this type of discusion (on this page). So i think anybody could not replay my answer. So i repost my question.
    I want insert tags in my Indesign CS4 files. Is this posible when i select my powermath equaiton then run script. Script add tags automatically before/after my equation. Please ignore IDML word.
    Yes i an comfortable with XSLT presently i working with Pearson ETMV2.
    I have one more question when i past my snapshot its appear properly but when i agin see my commant then my snapshot disappear (see small blue rectangle).
    Thank you John again i am new in this industry please guide.
    snegig

  • Need to add xml tag in the request message

    Hello Experts,
    Need ur help.
    Right now i am working on the scenario Http -> to -> Proxy.
    Whatever request i am getting is not having XML tag in it, and because of that my mapping is failing.
    Can you tell me that how can i add XML tag in my request so it will not fail in Mapping?
    Need to add : <?xml version="1.0" encoding="UTF-8"?> in request.
    Thanks,
    Hetal

    HI Hetal
    Instead of adding this to the source message. Remove this tag from mapping.
    Use a XSLT mapping without this initial tag. it will work.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m="http://namespace">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
    <xsl:template match="/">
    <xsl:for-each select="//tag">
    <xsl:value-of select="." disable-output-escaping="yes"/>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    Use this mapping without
    <?xml version="1.0" encoding="UTF-8"?>
    If you still see XML tag then use
    <xsl:output method="html"
    instead of
    <xsl:output method="xml"
    Thanks
    Gaurav

  • InDesign crashes when I add xml tag

    I have some groups (image + text) inside text.
    When I try to add xml tags with a grep query InDesign crashes.
    If I try to manually add xml tag to the text in a group, for example "evitare l'umidità", InDesign give me a message error.
    I think it's a bug
    Here there is the document Dropbox - ProblemaTag.idml
    Thanks
    Ivan

    I haven't done a Book in CS6 yet, but I'm starting to wonder if there might be some sort of bug (not extremely likely, but....) that's new. We had another post yesterday where ID crashed when trying to move a particular file into the chapter 5 position.
    Can you add this file first, then move it to the correct spot after the other files are added?

  • Add xml Tags by Apple/Java script

    Hi,
    All, I'm new to Indesign Scripting, and I'm hoping someone can help me with the following (add xml) problem.
    Can anyone write/suggest me how i can add xml tags. By Apple/Java Script
    My Probleam =>
    [&x+2, y+3&]
    Solution => (But its manual)
    <inlineequation><inlinemediaobject><textobject role="xpressmath">[&x+2, y+3&]</textobject></inlinemediaobject></inlineequation>
    I want add xml tags on my powermath equaiton. Its ETMV2 xml tags.
      Any insight is appreciated!
    Thank you so much
    snegig

    Hi John,
    (1) Without xml tags my InDesign file
    (2) After add tags my file (its manually)
    Is this any script when i select my power math equation data then add xml tags automatically
    Thank's any suggestion

  • Add XML tag (all power math equation) after/before

    Hi all,
    I have JS code written by (Sir John Hawkinson "http://forums.adobe.com/thread/938603?tstart=90") its work fine. Actually script do add XML tags [&x+2&] after/before this power math equation.
    My problem when i run this script i am select matter (power math equation) one by one is that possible when i select few paragraph script add automatic xml tags select all "power math equation" matter.
    script code below:
    var d=app.activeDocument,
        root=d.xmlElements[0],
        ie = root.xmlElements.add("inlineequation", app.selection[0]),
        im = root.xmlElements.add("inlinemediaobject", ie.texts[0]),
        to = root.xmlElements.add("textobject", im.texts[0]);
    to.xmlAttributes.add("role", "xpressmath");
    Thank's
    Regard
    snegig

    Hello Sir,
    That time you suggest lots of possibility this script code. But 2 and 3 month i am very new in (InDesign, JS and my first jobs) so i have heavy workload so.
    I am really sorry once again could you any change/update this code.
    Thank you so much once again
    Regard
    snegig

  • Add XML Tag to XML File (Idoc to XML File)

    Hi there.
    Just a question regarding the addition of a tag header in an XML file please?
    Idoc - > XI -> file (XML File)
    We have a need to add something like this below in bold to XML Tag Header in the inbound file:
    <?xml version="1.0" encoding="UTF-8"?>
    <?POSTEN SND="SE03220037090" SNDKVAL="1" REC="SE03220669500"
    MSGTYPE="ORDERS"?>
    Any ideas on how this can be managed would be apreciated please?
    Thank you.
    Mick.

    Hi Carlos.
    Thanks for your reply. I like what you are suggesting, however, I have no knowledge of Java and how to implement this Java addition to the mapping interface.
    I would appreciate any hints you may have. The value that I am trying to add to the tag header is exactly as it is below(the value in bold) and it can in fact be fixed, i.e. I am not looking to dynamically determine the values in the additional tag but just add the value as it is below...
    <?xml version="1.0" encoding="UTF-8"?>
    <?POSTEN SND="SE03220037090" SNDKVAL="1" REC="SE03220669500"
    MSGTYPE="ORDERS"?>
    I would appreciate any input from you on that.
    Thanks in advance Carlos.
    Mick.

  • Plist strings to UILabel: formatting specific words in the text?

    Developers,
    I have a UILable populated by a plist string. I would like the UILabel to display text, with specific words in bold format.
    I have looked around for a solution to this problem, but I haven't found anything useful on the net.
    Is this possible?
    I have been thinking that this could be done by using a key (e.g. stars around a word *word1*) that identifies particular words within the plist string to be formatted. An if statement could then be used to filter through which words should be formatted, within each string. I'm not sure if this would work or how i would implement it, which is why i turn to you for your experience and advice.
    j
    Message was edited by: james_coleman01

    Hey James!
    james_coleman01 wrote:
    I would like the UILabel to display text, with specific words in bold format.
    Any single instance of UILabel can only have one font, one text color, etc. There's no way to draw one letter or word differently from any other.
    I have been thinking that this could be done by using a key (e.g. stars around a word *word1*) that identifies particular words within the plist string to be formatted. ...
    As always, you're on the right track, James. In fact if you extend your idea to include syntax for italics, underlines, superscripts, etc., then add font family, point size and text color, then add various paragraph styles, you'll be well on your way to inventing what's known as "rich text".
    So the web search keys you needed were "UILabel UITextView rich text". I think the two most common solutions to your requirement are: (1) If the text is static, put the words in separate labels; (2) The recommended, and most general solution: Use UIWebView in place of UILabel.
    No. 2 isn't as kinky as it might seem, even if you've never used HTML (the most widely known example of rich text). Here's a short blog that's probably enough to get you going: [Display Rich Text Using a UIWebView|http://iphoneincubator.com/blog/windows-views/display-rich-text-using -a-uiwebview]. The responses on that page include some good tips too.
    \- Ray

  • How to map more than one xml element with some Paragraph in a Text Frame

    Hi friends,
    I am new in InDesign Java Scripting and I have to place or map, more than one xml elements of different parents, into one textbox. Is it possible through JavaScript? Can anyone help me in this because I have no idea how it should work and it urgently required.
    Thanks in Advance

    I had answered to you already in your first post: the short answer is that it's not possible on the same text box unless you assign a common ancestor of these two "parents" item. That's not a question of scripting, it's the way Indesign handle the XML with the layout. Import a xml in Indesign and drop tags to page item. What you can do manually is quite representative of what can be done through scripting.
    If you assign this anscestor to the text frame, you have to expect that all text child items will be displayed in the text frame (including the text of all the child of the two "parents" and all the other parents/childs that could be under the common ancestor). Having a XML that is designed for Indesign usage is pretty much inevitable if you are doing anything "serious".

  • Add XML tag to the XML output File

    Experts,
    My Scenario is JDBC to File
    For the resultant xml file i have to append a line <?Test Line?> after
    <?xml version="1.0" encoding="UTF-8" ?> while passing it to legacy system ?
    From SDN I found that a XSLT Mapping(as second mapping in the Interface mapping) will do the above requirement,
    I got some XSLT Code from SDN to do this
    1) 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" />
      <xsl:template match="/">
    <!--  add processing instruction -->
      <xsl:processing-instruction
    name="POSTEN">SND="SE03220037090" SNDKVAL="1" REC="SE03220669500" MSGTYPE="ORDERS"</xsl:processing-instruction>
    <!--  copy payload -->
      <xsl:copy-of select="." />
      </xsl:template>
      </xsl:stylesheet>
    2) 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" />
      <xsl:template match="/">
    <!--  add processing instruction -->
      <xsl:processing-instruction
    name="POSTEN">SND="SE03220037090" SNDKVAL="1" REC="SE03220669500" MSGTYPE="ORDERS"</xsl:processing-instruction>
    <!--  copy payload -->
      <xsl:copy-of select="." />
      </xsl:template>
      </xsl:stylesheet>
    But none of them worked for me, the additional tag does not appear on the o/p xml file
    Any help would be appreciated
    Srinivas

    Hello Srinivas,
    I had achieved the same using java mapping:
    Suppose your XML structure is:
    <?xml version="1.0" encoding="UTF-8" ?>
    <Root Element>----
    </Root Element>
    you can use the following code:
              import java.io.*;
              import java.util.*;
              import com.sap.aii.mapping.api.*;
              public class AddCommentInXML implements StreamTransformation {
              String record=null;
              String comment=null;
              public void execute(InputStream in, OutputStream out) {
              try {
              DataInputStream stdin = new DataInputStream(in);
              int length = getLengthFromStream(stdin);
              stdin.reset();
              byte[] buffer = getBytesFromStream(stdin);
              String str = new String(buffer);
              record = "<Root Element>";
              comment ="<!Test Line><Root Element>";
              str = str.replaceAll(record,comment);
              out.write(str.getBytes());
              out.close();
              } catch (IOException e) {
              public int getLengthFromStream(InputStream is ) throws
              IOException{
              int i = 0;
              int length = 0;
              try{
              while ((i = is.read())> 0){
              length ++;
              }catch (ArrayIndexOutOfBoundsException e) {
              e.printStackTrace();
              return length;
              public byte[] getBytesFromStream(InputStream is) throws
              IOException {
    //             Create the byte array to hold the data
              byte[] bytes = new byte[getLengthFromStream(is)];
              is.reset();
    //             Read in the bytes
              int offset = 0;
              int tmp = 0;
              while (offset < bytes.length
              && (is.read(bytes, offset, offset +
              (tmp = is.available()))) > 0) {
              offset += tmp;
    //             Ensure all the bytes have been read in
              if (offset < bytes.length) {
              throw new IOException("Could not completely read Inputstream");
    //             Close the input stream and return bytes
              is.close();
              return bytes;
              public void setParameter(Map param) {
    Hope this helps.
    Regards,
    Shweta

  • Need to find a specific word in a Text Field

    I have a text field and I need to be able to perform a function if that field contains (not equals) the word "Excel". Textfield contains the word Excel
    My sample is below
    if (this.rawValue== "Excel") <---- instead of = I want something using wildcards before and after the word "Excel"
         Then do something
    Else
         Do something else

    Hi,
    you can use a regular expression for this task.
    if (this.rawValue.match(/\s+Excel\s+/g)) {
    } else {

  • Scripting Selective XML into a Single Text Frame? (& Some Other Stuff...)

    Hi all, I could use some help (using version CS5.5).
    I want to import (via Javascript) an XML file similar to this:
    <movieRoot>
         <dvds>
              <movie>
                   <title>2001: A Space Odyssey</title>
                   <edition>Special Edition</edition>
                   <features>NOTHING</features>
                   <notes/>
              </movie>
              <movie>
                   <title>Airplane!</title>
                   <edition />
                   <features>Extra Laughs</features>
                   <notes/>
              </movie>
         </dvds>
    </movieRoot>
    I've been able to successfully do this, so no problem there.
    Then I want to dump the child elements under the XML element "<dvds>" into a single text frame that spans 2 columns per page. That's easy enough too, except:
    1) I want to filter the data so that empty elements or whose contents equal "NOTHING" do not appear.
    2) I want to add static text title above some of the elements that remain (outside the XML proper).
    3) Then I want to format the text (using Paragraph Styles).
    Tall order, I know, but I'm keen on figuring it out. I initially created a document using placeholders and used the standard XML Import to populate it with data, which was filtered using scripts to remove extraneous placeholders and static text. It gave me the result I wanted, but as the XML will be regularly updated and since the "filtered" tags result in non-standard XML entries, it means starting over from scratch after every XML update. So I turned to scripting...
    For point #1, I was able to filter properly using a recursive IF statement, tested here using message alerts:
    I've included a bunch of variables for (hopefully) easier viewing.
    var myXMLRoot = myDocument.xmlElements.item(0);  //movieRoot
    var myXMLParent = myXMLRoot.xmlElements.item(0);  //dvds
    var myXMLElement = myXMLParent.xmlElements.item(0);  //movie
    var currElement = myXMLElement.xmlElements.item(0);  //title
    for (i = 0; i < myXMLParent.xmlElements.length; i++)
        myXMLElement = myXMLParent.xmlElements.item(i);
        for (j = 0; j < myXMLElement.xmlElements.length; j++)
            currElement = myXMLElement.xmlElements.item(j);
            if (currElement.contents != "" && currElement.contents != "NOTHING")
                alert (currElement.markupTag.name + ": " + currElement.contents);
    It worked great until I tried to get it into an existing text frame. Since I want all the info in one text frame, placexml was out of the question, and markup worked but overwrote XML tags -- such as assigning the entire text frame to <movie/title> when I wanted it assigned to <dvds> with <movie/title> tags nested within it.
    If you can help me with anything, this is really where I need pointed in the right direction most. But if you're feeling generous or bored...
    Then for points #2 and #3, I want to take what's left ("filtered" XML data) and add additional text and formatting wherever certain tags are found.
    For example, applying the paragraph style "MovieTitles" for any text within <title></title> XML tags; or adding the phrase "Special Features" (with paragraph style "Headers") above any text marked with <features> tags, while the content within those <features> tags applies the paragraph style "NormalText."
    I've got some of this worked out in pieces already, but it generally falls apart because I can't get the tag structure correct in the text frame. I can provide more info as requested. Any help would be mighty appreciated!
    UPDATE: Surprisingly, I've actually had some good success this evening on solving most of these problems. I'll post my results once I've finished up just in case anyone else can be helped by what I've learned.
    One question remains for the moment: I've inserted text within an XML element, but outside of XML tags (e.g., </title>EDITION:<edition>) using "insertTextAsContent":
    [xmlElementHere].insertTextAsContent("EDITION:", XMLElementPosition.beforeElement); 
    Does anyone know a good way to apply a paragraph style to that text without using a find & replace function later (after placing the XML into a text frame)?

    As posted into the other thread:
    Yes, each record will be in its own frame.
    You can use one of a couple solutions to stitch (link) each frame to the other, delete all but the first page and the first merged record, then resize that first merge frame and reflow the entire document.
    https://forums.adobe.com/thread/1341730?start=0&tstart=0
    Please review this thread. There is a couple posts with a script and you would want the last version of that script. You would have to follow the directions, as well as add a column at the beginning of your data and fill it with consecutive numbers.
    Alternatively, there is a free plug-in by Rohiko for stitching merge data frames together, then follow the process above to reflow the document.
    https://www.rorohiko.com/wordpress/indesign-downloads/textstitch/
    Mike

  • [CS5 JS] Problem in Applying character styles xml tag names

    Hi,
    e.g. 1
    <italic>This is a italic text with <sup>superscript value</sup></italic>
    e.g.2
    <sup>This is a superscript text with <bold>Bold superscript</bold></sup>
    <italic>  mapped to character style "italic" and
    <sup> mapped to character style "sup"
    In my java script I already mapped the xml tags to specific character styles. In some of the cases (see e.g.1 and e.g.2) I need to map it to other character styles.
    In e.g.1 I need to apply a new character styles "italicSup" for the text "superscript value" same way
    In e.g.2 I need to apply a new character styles "BoldSup" for the text "Bold superscript".
    Can any know how to do this?
    Green4ever

    FYI, I am using
    Win Xp-SP2, CS5 7.0.3

  • Can an InCopy editor add, remove and edit a text frame placed inside the main story text frame?

    I think I already know the answer to this which is - no. I'll explain why I am asking the question in a second, but the reason I think the simple answer is no is because - text frames are controlled by a designer in the layout file, an editor using incopy can only edit the text and images placed inside text frames, and so cannot resize them, add or delete them.
    Ok, so the reason I have asked this.
    Is there a way around this so that editors in incopy can edit certain types of text frame that are contained within the main text frame? I'm using these text frames to contain specific paragraph styles, giving them a boxed look and also with an anchored icon in the top left of the text frame depending on the type of paragraph it is. See screenshot as an example of a green text frame that I am using to contain paragraphs of type "tip".
    If it is not possible for editors in incopy to add, edit or resize these text frames (green tip frame in the example above), then how else can I style these paragraphs to give the same visual appearance, but without the use of wrapping them in a text frame?
    One (not so good) way around this is for the designer to add the text frames in the layout file after he gets the content back from the editor, then moving the "tip" paragraphs into these newly created text frames. However when the editor updates the content in incopy and gets these new text frames in their copy, they can not then delete them if they wish to, or if they add or reduce content inside of these green text frames then the frames dont grow to fit their edited content. So I dont think its a solution for the designer to control the adding, removing and resizing of these frames.
    UPDATE: I have just discovered that once a text frame has been placed into the document by the designer and the editor updates their copy in incopy-  they can then use the "Position Tool" to select that text frame - allowing them to resize it, or delete it! Fantastic. But would the editor be able to add these frames in themselves to begin with? Maybe have a document containing all of the objects available to them, copy and paste one of them into the main document and edit its content? Does anyone have any advice on how to go about this? Essentially I would like the editor to control the insertion, editing and removal of these inline text frames.

    True. But when all I am trying to achieve is a border around a paragraph, use of a table seems overkill to me. But if thats the only solution I have so far then I will have to go down that route.
    It would be useful to have an object libraries panel in InCopy so that editors can drag across predefined text frames into their doc via InCopy, but I cant see that option in InCopy. is there one? I have also thought about exporting the frames as seperate InDesign Snippets and saving them to an objects folder, then when an editor needs to insert one into their doc they simply use File > Place > "Choose required text frame snippet". However I have found that InCopy can't place InDesign snippets so that theory was a failure. Is there another format I could use to save the objects and bring them into InCopy? List below shows my findings so far for trying to save/export a text frame from InDesign and then import into InCopy:
    InDesign Snippet (.idms) - can't import into InCopy
    InDesign Document (.indd) - imports content as an image - only editable in InDesign
    InDesign Template (.indt) - imports content as an image - only editable in InDesign
    InDesign Library (.indl) - can't import into InCopy - no panel available in InCopy for object libraries (that I can see...)
    InCopy Markup (.icml) - only imports the text, loses the text frame

Maybe you are looking for

  • Open orders,deliveries,

    Hi SD Gurus, how to find out the open orders, opend deliveries and open billing documents plse explain on this regards, RAMU.G

  • Moving from 32 bit to 64 bit

    What is the recommended method to move a RAC cluster from 32 bit to 64 bit architecture with the least amount downtime. I am using NetApp for storage in a 2 node cluster.

  • File Adapter: SYSTEM_FAILURE_INTERNAL

    Hi, in the adapter monitor I got the following error message for my file adapter (ftp): Error: Module Exception 'com.sap.aii.af.mp.module.ModuleException: senderChannel '8b22e3718bad3bf2882e300031a0722f': Catching exception calling messaging system'

  • Can't drag songs from library to playlist

    I've created many playlists over the last year and have a fair amount of experience in doing so. However, today I imported some music from several CDs and tried to create a new playlist. For some reason it will not allow me to drag any song to a new

  • IPhone 3GS cannot access wi-fi since 6.0 upgrade

    I have an iPhone 3gs and since upgrading to IOS 6 I cannot get access to wi-fi either at home or on campus.  I tried Reset Network Settings and that didn't help.  Does anyone have any other suggestions?