XML'yi ayrıştırmak için SAX kullanıyoruz çünkü tek bir değeri ayrıştırmak için tüm XML belgesinin belleğe okunmasını gerektirmiyor. SAX'in yalnızca XML'yi ayrıştırmak/kod çözmek ve onu oluşturmak için kullanılamadığı konusunda ısrar eden birçok makale okudum. Bu doğru mu?Java 1.4 ve SAX kullanarak rasgele verileri XML'e nasıl kodlarım?
2
A
cevap
4
Hayır, bu benzer bir şey kullanarak Java herhangi Writer XML kodlamak, doğru değildir:
char[] ch;
AttributesImpl atts = new AttributesImpl();
Writer writer = new StringWriter();
StreamResult streamResult = new StreamResult(writer);
SAXTransformerFactory tf = (SAXTransformerFactory) TransformerFactory.newInstance();
// SAX2.0 ContentHandler
TransformerHandler transformerHandler = tf.newTransformerHandler();
Transformer serializer = transformerHandler.getTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
// serializer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "nodes.dtd");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
transformerHandler.setResult(streamResult);
transformerHandler.startDocument();
atts.clear();
// atts.addAttribute("", "", "xmlns", "CDATA", "http://www.example.com/nodes");
// atts.addAttribute("", "", "xmlns:xsi", "CDATA", "http://www.w3.org/2001/XMLSchema-instance");
// atts.addAttribute("", "", "xsi:schemaLocation", "CDATA", "/nodes.xsd");
transformerHandler.startElement("", "", "node_list", atts);
// displayName element
if (displayName != null) {
transformerHandler.startElement("", "", "display_name", null);
ch = displayName.toCharArray();
transformerHandler.characters(ch, 0, ch.length);
transformerHandler.endElement("", "", "display_name");
}
// nodes element
transformerHandler.startElement("", "", "nodes", null);
atts.clear();
atts.addAttribute("", "", "node_type", "CDATA", "sometype");
transformerHandler.startElement("", "", "node", atts);
ch = node.getValue().toCharArray();
transformerHandler.startElement("", "", "value", null);
transformerHandler.characters(ch, 0, ch.length);
transformerHandler.endElement("", "", "value");
transformerHandler.endElement("", "", "node");
transformerHandler.endElement("", "", "nodes");
transformerHandler.endElement("", "", "node_list");
transformerHandler.endDocument();
String xml = writer.toString();
0
işleyicisi arabirimleri uygulamak kolay olacak şekilde tasarlanmıştır SAX. Aramanın kolay olmasını sağlamak için benzer bir sınıf yazmak (belki SAX arayüzünü sarmak) - zincirleme, hangi öğenin kapatılacağını, daha kolay özniteliklerin vb. Olduğunu hatırlamak çok kolay.
İlgili konular
- 1. Java SAX Ayrıştırma
- 2. Enum'u NSCoder kullanarak hızlıca nasıl kodlarım?
- 3. java kullanarak POST xml verileri
- 4. görüntü ve meta verileri java
- 5. SAX Ayrıştırıcısı
- 6. Java: Rasgele değerlere yuvarlama
- 7. Jq kullanarak rasgele JSON'u nasıl tamamen sıralayabilirim?
- 8. SIM 1.4
- 9. XStream çerçevesini kullanarak UTF-8'i nasıl kodlarım?
- 10. SAX: Bir öğenin içeriği nasıl elde edilir
- 11. Java Üret Rasgele sayı {-1,0,1}
- 12. TFS- java sdk kullanarak workitem verileri nasıl edinilir
- 13. FormWizard ve FileFields (Django 1.4)
- 14. Java SAX ile XML ayrıştırmak, büyük/küçük harf duyarlı.
- 15. Java istirahat Jersey: verileri (Dosya ve JSON)
- 16. Paket.Json'a nasıl rasgele veri ekleyebilirim ve nasıl yapabilirim?
- 17. neden jquery kodlarım çalışmıyor?
- 18. Java kullanarak Java nasıl uygulanır?
- 19. Java InputStream verileri bekletir.
- 20. Verileri Java kullanarak MS Excel'den aktar Kaynak Kodu
- 21. Hafif C++ SAX XML ayrıştırıcısı
- 22. Postato bağlantısını nasıl düzgün şekilde kodlarım?
- 23. Verileri saklama ve Realm kullanarak görüntüleme gerçekleştirme
- 24. Web formlarında parolaları javascript olmadan nasıl kodlarım?
- 25. java kullanarak "Aç" ve "Kaydet" nasıl yapılır
- 26. scikit-learn kullanarak rasgele ormanların paralel üretimi
- 27. İndirmek için bir dosya adını nasıl kodlarım?
- 28. Bir mülkü alt özelliklerle nasıl kodlarım?
- 29. UIActionSheet'de yeşil bir düğmeyi nasıl kodlarım?
- 30. Hızlı gerçek değerli rasgele jeneratör java
Bu, belgenin tamamında bellekte tüm belgeyi oluşturuyor mu? XSLT işlemcisini kullanma –
Bunun eski bir konu olduğunu biliyorum, ancak bu kod tamamen çalışmıyor. Birisi gelecekte bu çözüme gelebilir ve yukarıdaki kodu çalıştırmayı deneyebilir. –