2011-02-04 14 views
2

ブラウザ内に素晴らしいインタラクティブなチャートを表示するための "Highcharts"ライブラリは、内部的に使用されるSVGをラスタライズするサーバー側のアプリケーションに送信し、 PNG、JPEGまたはPDFをダウンロードして戻すことができます。XML DOMオブジェクトから完全なXMLソースを取得する

私の問題は、ブラウザ内で表示できる背景イメージとシンボルがHighchartsでエクスポートする前に破棄されていることですが、それらを必要とします。

SVG <image>タグなどをすべて削除してコメントアウトしました(彼らは、内部的に使用されているSVGを浄化するために正規表現を使用しています...)。

しかし、これらの<image>タグには標準ではない属性がいくつか使用されており、その座標は画像とは別にマップされているため、物事を再計算して属性を捨てる必要があります。

DOMParserを使用してSVGを解析して、私がやっているはずのことをしました。今では、生のxmlを得るためのエレガントな(またはシンプルな)方法を探しています。 DOMドキュメントオブジェクトのxml属性を使用して未加工のxmlを取得する - 他のすべてのブラウザに相当するものはありますか?私は今のところ全体を捜していて、本当に役立つものは何も見つかりませんでした。ありがとう:)

答えて

5

IE以外のブラウザではXMLSerializerを使用できます。次の関数は、すべての主要なブラウザでXMLノードをシリアル化します:

function serializeXmlNode(xmlNode) { 
    if (typeof window.XMLSerializer != "undefined") { 
     return (new window.XMLSerializer()).serializeToString(xmlNode); 
    } else if (typeof xmlNode.xml != "undefined") { 
     return xmlNode.xml; 
    } 
    return ""; 
} 
+0

ありがとうございました:)それは動作します:) – stefreak

+1

マイナーな落とし穴はあなたが '<画像のhref =「foo.png」>例えば、'得ることができるということです内容が明示的に "xlink"接頭辞を置かなかった場合、XMLSerializerからの文字列。知っているだけのこと。例えば、element.setAttributeNS( "http://www.w3.org/1999/xlink"、 "href"、 "#mylink"); –

関連する問題