2012-01-22 24 views
8

Trước hết:Làm thế nào để bạn thêm thông tin tài liệu xml với scala.xml?

  • Tôi biết anti-xml, và quy mô, nhưng tôi muốn sử dụng scala.xml chuẩn
  • Tôi thích để xây dựng tài liệu xml sử dụng phương pháp rõ ràng, không phải với xml ngầm cú pháp xây dựng vào Scala

Ok, vì vậy tôi có mảnh như mã:

val text = new scala.xml.Text("just a text") 
val root = new scala.xml.Elem(null,"element",null,scala.xml.TopScope,text) 
val doc = new scala.xml.Document() 
doc.docElem = root 
println(doc.toString()) 

Hầu tốt nhưng kết quả tôi nhận được:

<element>just a text</element> 

và tôi muốn để có được tiêu đề XML quá, như:

<?xml version="1.0"?> 
<element>just a text</element> 

Câu hỏi: Làm thế nào để thêm nó?

Tất nhiên theo cách thông thường, không phải là một số lỗi có thêm nguyên văn println có tiêu đề ;-).

+1

Bạn đang sử dụng một ngôn ngữ tuyệt vời như Scala, nơi bạn có thể nói 'xml val = đầu vào' và bạn không thích điều đó không? ;) Okey của nó, bởi vì sự lựa chọn của bạn, nhưng bạn có thể cho tôi biết xin vui lòng tại sao nó tốt hơn để sử dụng "cách khác"? – OverStack

+0

@OverStack, Bởi vì tính năng này là một lỗ hổng thực sự. Lời của tôi, nó rất mong manh đối với bất kỳ lỗi chính tả nào, vì vậy bạn không thấy lỗi của mình cho đến khi nó cắn bạn. Điều thứ hai - thực tế là thành tích tồn tại, điều đó không có nghĩa là bạn nên sử dụng nó. Word từ những người khác: http://www.codecommit.com/blog/scala/working-with-scalas-xml-support và có một đoạn về HTML trong VB, nhưng tôi không thể tìm thấy nó ngay bây giờ. – greenoldman

+0

@greenoldman Chỉ là tôi hoặc mã của bạn có cho một ngoại lệ con trỏ không? –

Trả lời

7

Giải pháp duy nhất tôi đã tìm thấy là thêm đoạn mã sau

val writer : PrintWriter = new PrintWriter(System.out) 
XML.write(writer,root,"utf-8",true,null) 
writer.flush() 
+0

Cảm ơn bạn rất nhiều, thật kỳ lạ là scala.xml không có gì trực tiếp hơn. – greenoldman

+0

Một điều nữa - nó hữu ích hơn (nói chung) để sử dụng 'StringWriter' hơn' PrinterWriter' (bởi vì sau đó nó rất dễ dàng để có được xml đầu ra như chuỗi). – greenoldman

Các vấn đề liên quan