我試圖創建一個結構,一個新的XML,並在同一時間通過這個如何創建一個新的XML文件Joox
String styleName = "myStyle";
String styleKey = "styleKeyValue";
File file = new File("test.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbf.newDocumentBuilder();
Document document = builder.newDocument();
Match x = $(document)
.namespace("s", "http://www.mycompany.com/data")
.append(
$("Data",
$("Styles",
$("Style",
$("Attributes", "")
).attr("name", styleName)
)
)
);
Match xpath = x.xpath("//s:Attributes");
xpath = xpath.append($("Attribute", "").attr("key", styleKey));
x.write(file);
添加元素然而.append似乎不添加任何東西最後我得到一個空文件。
此方法基於this SO answer,但「Document document = $(file).document();」行給我一個例外,因爲該文件不存在 - 因此使用DocumentBuilder。
當然,我意識到我可以通過其他方法創建新的xml文件,我現在試圖堅持使用基於Joox的方法。
好,謝謝 - 我understan d。我想我期待一場失敗的比賽來拋出一個異常。我意識到我可以使用「if(x.isEmpty())」,但這會阻礙方法鏈式風格。我已經修改了我的代碼沿線(joox一路選項),你建議並得到它的工作 - 將作爲編輯添加到問題.. – Dazed
@Dazed:好主意,順便說一句,你可以提供你自己的答案在這裏堆棧溢出。這是建議您最終解決方案的推薦方式,而不是編輯問題的...... –