我有许多小的XML块,应该作为子元素嵌入到一个大的XML中。有没有办法将这些块写入XMLStreamWriter
而不转义它们?
答案 0 :(得分:7)
以下是处理此问题的几个选项:
javax.xml.transform.Transformer
您可以使用javax.xml.transform.Transformer
将代表您的XML片段的StreamSource
转换为包裹StAXResult
的{{1}}。
XMLStreamWriter
或者您可以执行以下操作。您可以利用OuputStream
强制flush()
输出其内容。然后你会注意到我XMLStreamWriter
强制将{1}}的开始元素结束,然后再将嵌套的XML写为xsw.writeCharacters("")
。需要刷新下面的示例代码以正确处理编码问题。
bar
答案 1 :(得分:2)
var obj = { "ES": { "130": { "code": "A Coruсa", "name": "A Coruña" }, "131": { "code": "Alava", "name": "Alava" }, }, "CH": { "104": { "code": "AG", "name": "Aargau" } } },
result = Object.keys(obj).reduce(function (r, k) {
return r.concat(Object.keys(obj[k]).map(function (kk) {
return obj[k][kk];
}));
}, []);
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
答案 2 :(得分:1)
woodstox有一个stax实现,他们的XMLStreamWriter2类有一个writeRaw()调用。我们有同样的需求,这给了我们一个非常好的解决方案。