htmlparser2 как заменить тег другим настраиваемым тегом с теми же атрибутами, что и тег один - PullRequest
1 голос
/ 16 июня 2020

Мне нужно заменить тег на другой тег с такими же свойствами. Например, измените это:

<TagOne width="500" height="200">asdfasdf</TagOne>

на это:

<AnotherTag width="500" height="200">sometext</AnotherTag>

С помощью этого кода я вижу атрибуты, но не знаю, как заменить тег на другой:

const htmlparser2 = require("htmlparser2"); 
const DomUtils = require("htmlparser2").DomUtils;  
const htmlContent = `<html>
<head></head> <body>    <div id="content">
 <TagOne width="500" height="200" src="image1.jpg">asdfasdf</TagOne>
   <p>asdfasdf</p>   </div></body></html>`; const parser = new htmlparser2.Parser(
   {
        onopentag(name, attribs) {
          if (name === "TagOne") {
                 if(attribs.width ){
                    var width = attribs.width;
                }
                if(attribs.height ){
                    var height = attribs.height; 
                }
                var new_tag = `<AnotherTag width:`+width+`; height:`+height+`;">sometext</div>`;


            }
        },
        ontext(text) {
             console.log("-->", text);

         },
         onclosetag(tagname,new_tag) {
             if (tagname === "amp-iframe") {
                 console.log("That's it?!");

             }
         },
     },
     { decodeEntities: true } ); 
 var content = parser.write(htmlContent); 
 parser.end();

Я пытался сделать это с помощью функции onclosetag:

  //htmlparser2.DomUtils.removeElement(tagname);
     //parser.write(new_tag);

, но это дает мне ошибку, это неправильный способ, но я не могу найти ничего похожего в документации. Кто-нибудь может мне помочь? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...