官术网_书友最值得收藏!

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)中構建流結果。

主站蜘蛛池模板: 昭觉县| 开平市| 洛南县| 武义县| 吉木萨尔县| 积石山| 河池市| 苗栗市| 昌邑市| 饶平县| 德格县| 米脂县| 报价| 瑞昌市| 宁津县| 崇阳县| 昭平县| 宾阳县| 神农架林区| 谷城县| 石渠县| 会昌县| 简阳市| 衡东县| 修水县| 内丘县| 沙湾县| 宁陕县| 南漳县| 高碑店市| 元谋县| 来宾市| 福海县| 武川县| 田林县| 乌兰县| 巨野县| 盐城市| 忻州市| 双桥区| 东乡|