第10章xmldom物件模型内容摘要:
件 例如:在新建立的 XML DOM 新增元素,如下所示 : (請注意:只是新增節點,該節點與 document 之間暫時還沒有關係) Element root = (Element) (book)。 •程式碼使用 createElement() 方法建立 Element 元素物件 book,這就是新文件的根元素。 新增 XML元素和屬性 步驟二 第二步:插入指定的位置 在建立好 XML 元素的相關物件後,我們可以使用 Node 節點物件的相關方法將節點新增到樹狀結構的 XML DOM 中,相關方法的說明如下所示: • appendChild(newnode) : 新增 newnode 節點為其最後一個子節點。 • insertBefore(newnode, befnode) : 將 newnode節點插在 befnode 節點前。 例如:將 root 節點新增成為 XML DOM 的根節點,如下所示: (root)。 新增 XML元素和屬性 步驟三 第三步:新增元素的內容 在元素新增內容,就是新增文字值的子節點,如下所示: Element node = (Element) (code)。 Text t = (Text) (P761)。 (t)。 (node)。 新增 XML元素和屬性 步驟四 第四步:新增元素的屬性 在 XML 節點如果擁有屬性, Element 元素物件可以使用 setAttribute() 方法建立屬性,如下所示: (instock, Y)。 •程式碼新增名為 instock的屬性,第 1個參數是屬性名稱,第 2個參數是屬性值。 刪除 XML元素和屬性 如果需要刪除節點或屬性,我們可以使用 Node 節點的removeChild() 方法從樹狀結構刪除指定的節點,如下所示: // 取得 node 的一個子節點 onechild (onechild)。 如果想刪除屬性,則是使用 Element 元素物件的removeAttribute() 方法來刪除屬性,如下所示: // 取得一個 Element 節點 del (instock)。 變更 XML 元素或者屬性內容 如果需要變更節點或屬性內容,我們使用 setTextContent() 方法,範例如下: 修改元素內容,把 code 的 P761 改成 XXX,如下所示: Element element = ().getFirstChild()。 (XXX)。 修改屬性 instock 內容: Element element = ().getFirstChild()。 Attr attr = (instock)。 (n)。 變更 XML 元素或者屬性名稱 如果需要變更節點或屬性名稱,我們可以使用 Document 節點的 renameNode() 方法,語法如下: // 改變 node 的名稱為 newName (node, [new namespace], [newName])。 如果保留原來的 namespace,把原來的名稱從 library 改成 books,如下所示: // 假設取得一個 Element 節點 element Element element = ()。 (element, (), “books”)。 Ch10_4_4 import .*。 import .*。 import .*。 import .*。 public class Ch10_4_4 { static Document document。 public static void main(String[] args) throws Exception { DocumentBuilderFactory dbf = ()。 DocumentBuilder db = ()。 // 建立新 XML文件 document = ()。 // 建立根元素 Element root = (book)。 (root)。 // 新增子元素 code Element node = (code)。 (node)。 ((P761))。 // 新增子元素 title node = (title)。 (node)。 ((PHP 5網頁設計範例教本 ))。 Ch10_4_4 // 新增 author元素 Element newNode = (author)。 (newNode, ())。 Node newText = (陳會安 )。 ().appendChild(newText)。 // 新增屬性 node=(Element)().getNextSibling()。 (instock,Y)。 (建立的 XML文件 : )。 printXML(root)。 // 刪除 author元素 ((Element) (author).item(0))。 // 刪除 code屬性 instock Element del = (Element) ()。 (instock)。 (刪除後的 XML文件 : )。 printXML(root)。 } Ch10_4_4 // 顯示 XML文件 private static void printXML(Node root) { (根元素 : +())。 NodeList nodes = ()。 // 取得所有的子節點 for ( int i=0。 i ()。 i++ ) { // 元素和文字節點 (元素 : + (i).getNodeName())。 (/+(i).getFirstChild().getNodeValue())。 // 顯示指定元素的屬性值 if ((i).hasAttributes()) { NamedNodeMap atts = (i).getAttributes()。 for (int j = 0。 j ()。 j++) { Node att = (j)。 ( + +())。 (/+())。 } } } } } Ch10_4_4 // 輸出 XML 文件 private static void printXML(Node root) { PrintWriter out = new PrintWriter(new FileWriter())。 (根元素 : +())。 NodeList nodes = ()。 for ( int i=0。 i ()。 i++ ) { (元素 : + (i).getNodeName())。 (/+(i).getFirstChild().getNodeValue())。 // 顯示指定元素的屬性值 if ((i).hasAttributes()) { NamedNodeMap atts = (i).getAttributes()。 for (int j = 0。 j ()。 j++) { Node att = (j)。 ( + +())。 (/+())。 } } } ()。 } } 練習題 請修改 Ch10_4_1 並使其能夠產生 的 XML 文件。 DTD 驗證 JAXP API 版只支援 DTD 驗證,並不支援 XML Schema( )。 當 XML 文件指定 DTD 檔案,在 XML 剖析器載入 XML 文件時,就可以進行 XML文件的驗證。 •JDK supports JAXP API •JDK supports JAXP API •JDK supports JAXP API TestXSD // 驗證 XML Schema import .*。 import .*。 import .*。 import .*。 public class TestXSD { public static void main(String[] args) { if( != 1) { (Usage: java TestXSD )。 (1)。 } String xmlFile = args[0]。 try { TestXSD xmlTester = new TestXSD(xmlFile)。 } catch (Exception e) { ( ().getName() +: + () )。 } } TestXSD public TestXSD(String xmlFile) throws ParserConfigurationException, SAXException, IOException { DocumentBuilderFactory factory = ()。 (Parser名稱 : + ().getName())。 // 預設為 false,必須是 true,因為 xsd:schema (true)。 (true)。 // 明確告知 JAXP 所使用的 Schema 語言 ( // Specify our own schema this overrides the schemaLocation in the xml file //( file:./)。 DocumentBuilder builder = ()。 (new SimpleErrorHandler() )。 // parse 錯誤會引起 SAXException Document document = (xmlFile)。 Node rootNode = ()。 (Root node: + ())。 } } SimpleErrorHandler import。 import。 public class SimpleErrorHandler implements ErrorHandler { public void error(SAXParseException exception) { (error: + ())。 } public void fatalError(SAXParseException exception) { (fatalError: + ())。 } public void warning(SAXParseE。第10章xmldom物件模型
相关推荐
03 1WRRDCE MIO /RDA L EA L EW RP 2 . 7P 2 . 0P 0 口8 0 3 1D 0 ~ D 7P A 7P A 0P C 0P C 3P B 0P B 7R E S E Ta b c d e fg74072+ 5 V4 02 0+ 5 V1 K5 . 1 K47 5 4 5 23+ 5 V2 0092 1口P A 7P A 0P C 3P B 0P
符号数 ,例如 : time Events[0:31]。 //时间值数组。 time CurrTime。 //CurrTime存储一个时间值。 东南大学 无线电工程系 射频与光电集成电路研究所 34/935 (4) real寄存器和 realtime寄存器类型 说明方式: real real_reg1, real_reg2, . . ., real_regN。 实数时间说明: realtime
就是把预期的人和系统之间写成剧本来描述这种功能需求。 但是这样的做法没有统一的格式,缺乏描述的形式化,随意性比较大,常常容易产生理解上的含混和不准确性。 1992年 Jacobson在他的著作中提出了 Use Case的概念和可视化表示方法 ——Use Case图。 作为软件项目的开发和规划中的一个基本模型元素, Use Case的概念和方法受到了 IT界的欢迎,很快被广泛应用到许多领域中
, Click事件只发生一次 OptionButton控件的值 • Value属性 – 单选钮的 Value属性确定该单选钮是否被选中。 True表示被选中 , 否则没有选中。 – 可以在代码中将 Value属性设为 True来选定单选钮。 例如: = True – 如果要在单选钮组中设置缺省单选钮 , 可以在设计时通过 “ 属性窗口 ” 将相应单选钮的 Value属性设为True,