私は、Javaで編集したい名前、ID、その他のフィールドを持つ学生カードSVGを持っています。ユーザーがGUIを使用して入力します。JavaでBatikを使用してSVGを編集できませんか?
私はBatikを使ってSVGを正常に解析しましたが、SVGファイルを開いたときにSVGファイルで行った変更を見ることはできません。
String parser = XMLResourceDescriptor.getXMLParserClassName();
SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
String uri = "card.svg";
try {
Document doc = f.createDocument(uri);
NodeList nodeList = doc.getChildNodes();
Element svg = doc.getElementById("name");
svg.setTextContent("Your Name");
System.out.println(svg.getTextContent());
} catch (IOException e) {
e.printStackTrace();
}
私は
System.out.println(svg.getTextContent());
を使用してSVG要素の値の1プリントアウトした場合それは変わっていますが、私はメモ帳でSVGを開くとそれは同じです。
SVG
<text x="759" y="361" id="name" class="fil3 fnt3">STUDENT</text>
OTHERS FOR UPDATE:あなたは、ここだけでいくつかの一般的なXML解析を任意の特定のSVG機能を使用していないように見えます
File file = new File("new.svg");
FileWriter fWriter = new FileWriter(file);
XmlWriter.writeXml(svg, fWriter, false);
// Most crucial part, It wasn't working just because of flush
fWriter.close();
FileOutputWriter? –
申し訳ありませんが、FileWriter。 (私はJavaをやってからしばらくしています) – heycam
あなたのアップデート#2は私にとって正しいものです。まだ問題がある場合は、バティックユーザーのメーリングリストにお尋ねください。 – heycam