異なるソース ドキュメントからの複数の SVG フラグメントを 1 つの結果ドキュメントに結合したいと考えています。ID の競合を避けるために、各ソース ドキュメントの ID に一意の文字列をプレフィックスとして付けて、その ID を "名前空間" にする必要があります。
XPath を使用して、SVG ドキュメント内のすべての ID 宣言を見つけることができます (例: //@id
)。DOM を直接操作するか、何らかの正規表現の魔法 (または両方の組み合わせ) を使用して、ID を置き換えることができます。補足として、私はこれをすべて PHP で行っていますが、速度やパフォーマンスはそれほど重要ではないため、正規表現の置き換えで問題ありません。
id
これまでのところ、ローカル名を持つ属性をID 宣言として
扱っています。たとえば、
<clipPath id="a">...</clipPath>
そして、この構文の対応する IDREF を置き換えることに成功しました (つまり、前に a がある場合#
):
<g clip-path="url(#a)">...</g>
今、これらは私の質問です:
id
SVGには、ID 宣言でもあるローカル名以外の属性はありますか? どれ?- 上記以外の SVG の IDREF の構文はあり
#
ますか? どれ? - SVG の ID / IDREF について知っておくべきリソースはありますか?
- SVG ドキュメントをマージするときに、ID の重複以外に潜在的な競合はありますか?
ヒントをありがとう!:)