InkScape などのプログラムで作成された SVG ファイルがあります。それを Javascript にロードし、他の SVG 要素と一緒に SVG オブジェクトに入れたいと考えています。
URL を渡すことができる関数が必要です。その関数はその SVG を取得し、読み込んだ SVG ファイル内のすべてをグループ化する「g」オブジェクトを返します。
SVG.LoadXML = function (url, continuation) {
var http = new XMLHttpRequest();
http.open("GET", url, false);
http.send();
textBody = http.responseText;
var g = document.createElementNS(SVG.ns, "g");
g.innerHTML = textBody;
return g;
}
ロードされるファイルの本体は次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC [...] >
<svg version="1.1" [...] >
<g>
<defs>
<path id="SVG1ID_1_" [...]
etc.
したがって、私がやりたいことは、ファイルを XML として開き、最初の 2 つのノードをスキップして、2 つ目のノードを入力し、その中のすべてのノードをドキュメントの SVG にコピーすることだと思います。
これは非常に単純であるべきもののように思えますが、すでに数千人によっていくつかの異なる方法で実装されています。