WEB开发网
开发学院软件开发Java 实战 Groovy: 构建和解析 XML 阅读

实战 Groovy: 构建和解析 XML

 2009-11-18 00:00:00 来源:WEB开发网   
核心提示: 注意,xml 变量受到了针对内部引号和换行符的转义字符的污染,实战 Groovy: 构建和解析 XML(4),然而,更糟的是需要将 String 转换成一个 byte 数组,然后再转换成 ByteArrayInputStream 才能进行解析,DocumentBuilder 未提供将简单 Str

注意,xml 变量受到了针对内部引号和换行符的转义字符的污染。然而,更糟的是需要将 String 转换成一个 byte 数组,然后再转换成 ByteArrayInputStream 才能进行解析。DocumentBuilder 未提供将简单 String 作为 XML 解析的直观方法。

通过 MarkupBuilder 创建 XML

Groovy 相对 Java 语言最大的优势体现于在代码中创建 XML 文档。清单 6 显示了创建 5 行 XML 代码段所需的 50 行 Java 代码:


清单 6. 使用 Java 代码创建 XML
import org.w3c.dom.*; 
import javax.xml.parsers.*; 
import javax.xml.transform.*; 
import javax.xml.transform.dom.DOMSource; 
import javax.xml.transform.stream.StreamResult; 
import java.io.StringWriter; 
 
public class CreateXml { 
 public static void main(String[] args) { 
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
  try { 
   DocumentBuilder db = dbf.newDocumentBuilder(); 
   Document doc = db.newDocument(); 
 
   Element langs = doc.createElement("langs"); 
   langs.setAttribute("type", "current"); 
   doc.appendChild(langs); 
 
   Element language1 = doc.createElement("language"); 
   Text text1 = doc.createTextNode("Java"); 
   language1.appendChild(text1); 
   langs.appendChild(language1); 
 
   Element language2 = doc.createElement("language"); 
   Text text2 = doc.createTextNode("Groovy"); 
   language2.appendChild(text2); 
   langs.appendChild(language2); 
 
   Element language3 = doc.createElement("language"); 
   Text text3 = doc.createTextNode("JavaScript"); 
   language3.appendChild(text3); 
   langs.appendChild(language3); 
 
   // Output the XML 
   TransformerFactory tf = TransformerFactory.newInstance(); 
   Transformer transformer = tf.newTransformer(); 
   transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
   StringWriter sw = new StringWriter(); 
   StreamResult sr = new StreamResult(sw); 
   DOMSource source = new DOMSource(doc); 
   transformer.transform(source, sr); 
   String xmlString = sw.toString(); 
   System.out.println(xmlString); 
  }catch(ParserConfigurationException pce) { 
   pce.printStackTrace(); 
  } catch (TransformerConfigurationException e) { 
   e.printStackTrace(); 
  } catch (TransformerException e) { 
   e.printStackTrace(); 
  } 
 } 
} 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:实战 Groovy 构建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接