1

Javascript で DOM をシリアル化し、整形式の XML ドキュメントを取得したいのですが、metaタグが閉じられていません:

<html>
  <head>
    <meta name="keywords" content="test">
  </head>
  <body>
    <p>test
    <pre id='x'/>
  </body>
  <script>
    document.getElementById('x').appendChild(
      document.createTextNode(new XMLSerializer().serializeToString(document))
    );
  </script>
</html>

出力に無効な XML が含まれており、ここmetaで は閉じられていません。ただしp、閉鎖されています:

<html>
  <head>
    <meta name="keywords" content="test">
  </head>
  <body>
    <p>test</p>
  </body>
</html>

Chrome 30.0 と Phantomjs 1.9.2 での同じ動作。

XMLSerializerHTML 入力が壊れていても、から整形式の XML 出力を期待しています。これが起こらない理由と回避策は何ですか? DOM をテキストとして XML に変換する必要があります。

4

1 に答える 1

0

ネイティブでは無理そうですXMLSerializer。これまでにこれらのライブラリを見つけました:

于 2013-10-27T07:39:44.090 に答える