- Java核心技術·卷Ⅱ:高級特性(原書第10版)
- (美)凱S.霍斯特曼
- 810字
- 2020-10-30 18:10:52
3.7.4 示例:生成SVG文件
程序清單3-10是一個生成XML輸出的典型程序。該程序繪制了一幅現代派繪畫,即一組隨機的彩色矩形(參見圖3-6)。我們使用可伸縮向量圖形(Scalable Vector Graphics,SVG)來保存作品。SVG是XML格式的,它使用設備無關的方式描述復雜圖形。你可以在http://www.w3c.org/Graphics/SVG找到更多關于SVG的信息。要查看SVG文件,只需使用任意的現在主流的瀏覽器。

圖3-6 生成的現代藝術品
我們并沒有涉及SVG的細節。就我們的目的而言,我們只需要知道怎樣表示一組彩色的矩形。下面是一個例子:

正如你看到的,每個矩形都被描述成了一個rect節點。它有位置、寬度、高度和填充色等屬性,其中填充色以十六進制RGB值表示。
注意:SVG大量使用了屬性。實際上,某些屬性相當復雜。例如,下面的path元素:

M是指“moveto”命令、L是指“lineto”、z是指“closepath”(!)。顯然,該數據格式的設計者不太信任XML表示結構化數據的能力。在你自己的XML格式中,你可能想使用元素來替代復雜的屬性。
javax.xml.parsers.DocumentBuilder 1.4
·Document newDocument()
返回一個空文檔。
org.w3c.dom.Document 1.4
·Element createElement(String name)
·Element createElementNS(String uri,String qname)
返回具有給定名字的元素。
·Text createTextNode(String data)
返回具有給定數據的文本節點。
org.w3c.dom.Node 1.4
·Node appendChild(Node child)
在該節點的子節點列表中追加一個節點。返回被追加的節點。
org.w3c.dom.Element 1.4
·void setAttribute(String name,String value)
·void setAttributeNS(String uri,String qname,String value)
將有給定名字的屬性設置為指定的值。
參數:uri 名字空間的URI或null
qname 限定名。如果有別名前綴,則uri不能為null
value 屬性值
javax.xml.transform.TransformerFactory1.4
·static TransformerFactory newInstance()
返回TransformerFactory類的一個實例。
·Transformer newTransformer()
返回Transformer類的一個實例,它實現了標識符轉換(不做任何事情的轉換)。
javax.xml.transform.Transformer 1.4
·void setOutputProperty(String name,String value)
設置輸出屬性。標準輸出屬性參見http://www.w3.org/TR/xslt#output,其中最有用的幾個如下所示:
參數:doctype-public DOCTYPE聲明中使用的公共ID
doctype-system DOCTYPE聲明中使用的系統ID
Indent “yes”或者“no”
method “xml”、“html”、“text”或定制的字符串
·void transform(Source from,Result to)
轉換一個XML文檔。
javax.xml.transform.dom.DOMSource 1.4
·DOMSource(Node n)
從給定的節點中構建一個源。通常,n是文檔節點。
javax.xml.transform.stream.StreamResult 1.4
·StreamResult(File f)
·StreamResult(OutputStream out)
·StreamResult(Writer out)
·StreamResult(String systemID)
從文件、流、寫出器或系統ID(通常是相對或絕對URL)中構建流結果。
- C/C++算法從菜鳥到達人
- Learning Flask Framework
- jQuery EasyUI網站開發實戰
- HTML5+CSS3基礎開發教程(第2版)
- HTML5從入門到精通 (第2版)
- Bootstrap 4 Cookbook
- Modern C++ Programming Cookbook
- Everyday Data Structures
- 軟件體系結構
- HTML5+CSS3+jQuery Mobile APP與移動網站設計從入門到精通
- 從零開始學UI:概念解析、實戰提高、突破規則
- MySQL核心技術與最佳實踐
- LiveCode Mobile Development Hotshot
- 瘋狂Ajax講義(第3版)
- C++程序設計習題與實驗指導