Highlighted

How to Untag the Elements without removing processing Instruction

Community Beginner ,
Aug 03, 2020

Copy link to clipboard

Copied

manikandand34755096_1-1596468224008.png

In javascript, I want to untag the selected elements(Element Name: ldinsert) without removing processing instruction(marked red color). Its possible while untagging manually but doing in ExtendScript toolKit i can't why???

Code used for untagging elements.

if(myElements[i].markupTag.name=="ldinsert")
{
  myElements[i].untag();
}

 

Adobe Community Professional
Correct answer by Sunil Yadav | Adobe Community Professional

Unfortunately from code xml instruction also will be removed.

To tackle this you can try untagging like this:

///////////////////////////////////////////////////////////////////////////////////

if(myElements[i].markupTag.name=="ldinsert"){
    var myNode = myElements[i];
    for(var p = 0; p < myNode.xmlInstructions.length; p){
        myNode.xmlInstructions[p].move(LocationOptions.BEFORE, myNode);
        }
    myNode.untag();
    }

///////////////////////////////////////////////////////////////////////////////////

Best

Sunil

TOPICS
Bug, Performance, Scripting, SDK

Views

90

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

How to Untag the Elements without removing processing Instruction

Community Beginner ,
Aug 03, 2020

Copy link to clipboard

Copied

manikandand34755096_1-1596468224008.png

In javascript, I want to untag the selected elements(Element Name: ldinsert) without removing processing instruction(marked red color). Its possible while untagging manually but doing in ExtendScript toolKit i can't why???

Code used for untagging elements.

if(myElements[i].markupTag.name=="ldinsert")
{
  myElements[i].untag();
}

 

Adobe Community Professional
Correct answer by Sunil Yadav | Adobe Community Professional

Unfortunately from code xml instruction also will be removed.

To tackle this you can try untagging like this:

///////////////////////////////////////////////////////////////////////////////////

if(myElements[i].markupTag.name=="ldinsert"){
    var myNode = myElements[i];
    for(var p = 0; p < myNode.xmlInstructions.length; p){
        myNode.xmlInstructions[p].move(LocationOptions.BEFORE, myNode);
        }
    myNode.untag();
    }

///////////////////////////////////////////////////////////////////////////////////

Best

Sunil

TOPICS
Bug, Performance, Scripting, SDK

Views

91

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Aug 03, 2020 0
Adobe Community Professional ,
Aug 03, 2020

Copy link to clipboard

Copied

Not sure if this would help, but you could try just removing the tag. 

 

https://www.indesignjs.de/extendscriptAPI/indesign-latest/#XMLTag.html

 

 

if(myElements[i].markupTag.name=="ldinsert")
{
  myElements[i].markupTag.remove();
}

 

 

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 03, 2020 1
Community Beginner ,
Aug 03, 2020

Copy link to clipboard

Copied

Thanks for your reply.

Remove() function is contains replacewith parameter(its required, not optional) but i want to untag element without removing processing instruction and also content inside the untagged elements.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 03, 2020 0
Adobe Community Professional ,
Aug 05, 2020

Copy link to clipboard

Copied

Unfortunately from code xml instruction also will be removed.

To tackle this you can try untagging like this:

///////////////////////////////////////////////////////////////////////////////////

if(myElements[i].markupTag.name=="ldinsert"){
    var myNode = myElements[i];
    for(var p = 0; p < myNode.xmlInstructions.length; p){
        myNode.xmlInstructions[p].move(LocationOptions.BEFORE, myNode);
        }
    myNode.untag();
    }

///////////////////////////////////////////////////////////////////////////////////

Best

Sunil

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Aug 05, 2020 1