javascriptを使用して、DOMツリーの現在の状態を文字列にシリアル化したいと思います。結果のフォーマットはそれほど重要ではありませんが、私はhtmlを好みます。
これを行う簡単な方法はありますか?
ちなみに、PhantomJsを使用してページのダウンロードを自動化し、jsスクリプトを使用してページを操作し、ページの現在の状態を保存します(ただし、画像やPDFとしては保存しません)。
javascriptを使用して、DOMツリーの現在の状態を文字列にシリアル化したいと思います。結果のフォーマットはそれほど重要ではありませんが、私はhtmlを好みます。
これを行う簡単な方法はありますか?
ちなみに、PhantomJsを使用してページのダウンロードを自動化し、jsスクリプトを使用してページを操作し、ページの現在の状態を保存します(ただし、画像やPDFとしては保存しません)。
XMLSerializerを使用してdomの任意の要素または一部をシリアル化できます。コードは次のとおりです。
Element.prototype.innerText = function(){
var serializer = new XMLSerializer();
var serialized = serializer.serializeToString(this);
return serialized;
}
これはブラウザコンソールで実行できます。
new XMLSerializer().serializeToString(document);
document
任意のノードに置き換えます。たとえば、CSSと組み合わせると次のようになります。
new XMLSerializer().serializeToString(document.querySelector('h1'));
"http://www.w3.org/1999/xhtml \" itemprop = \ "name \" class = \ "grid--cell fs-headline1 fl1 ow-break-word mb8\">JSを使用してシリアル化できますか現在のDOM?」
これを関数でラップできます。
const serializeElement = el => {
const serializer = new XMLSerializer();
return serializer.serializeToString(el);
};