Xml簡介_動力節點Java學院整理_XML示例

來源:腳本之家  責任編輯:小易  

在我們的程序中,通常要有一些根據主機環境確定的變量.比如數據庫訪問用戶名和密碼,不同的主機可能設置不一樣.只要更改XML配置文件,就可以正常運行.localhostsqlnameusernamepassword上面這個myenv.xml配置文件一般是放在tomcat的WEB-INF/classes目錄下.我們編制一個Java程序直接讀取,將dbhost dbuser dbpassword提取出來供其他程序訪問數據庫用.目前使用SAX比較的多,與DOM主要區別是 SAX是一行一行讀取XML文件進行分析,適合比較大文件,DOM是一次性讀入內存,顯然不能對付大文件.這里我們使用SAX解析,由于SAX解析器不斷在發展,網上有不少文章是針對老版本的.假如你使用JDK1.4,可以參考 使用SAX處理XML文檔 一文.這里的程序是根據其改進并且經過實踐調試得來的.對上面myenv.xml讀取的Java程序:import org.xml.sax.Attributes;import org.xml.sax.helpers.DefaultHandler;import org.xml.sax.SAXException;import java.util.Properties;使用DefaultHandler的好處 是 不必陳列出所有方法,public class ConfigParser extends DefaultHandler {定義一個Properties 用來存放 dbhost dbuser dbpassword的值private Properties props;private String currentSet;private String currentName;private StringBuffer currentValue=new StringBuffer();構建器初始化propspublic ConfigParser(){this.props=new Properties();}public Properties getProps(){return this.props;}定義開始解析元素的方法.這里是將中的名稱xxx提取出來.public void startElement(String uri,String localName,String qName,Attributes attributes)throws SAXException {currentValue.delete(0,currentValue.length());this.currentName=qName;}這里是將之間的值加入到currentValuepublic void characters(char[]ch,int start,int length)throws SAXException {currentValue.append(ch,start,length);}在碰到結束后,將之前的名稱和值一一對應保存在props中public void endElement(String uri,String localName,String qName)throws SAXException {props.put(qName.toLowerCase(),currentValue.toString().trim());}}上面的這個解析程序比較簡單吧?其實解析XML就是這么簡單.現在我們已經將dbhost dbuser dbpassword的值localhost sqlname username password提取了出來.但是這只是在在解析器內部,我們的程序還不能訪問.需要再編制一個程序.import java.util.Properties;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import java.net.URL;public class ParseXML{定義一個Properties 用來存放 dbhost dbuser dbpassword的值private Properties props;這里的propspublic Properties getProps(){return this.props;}public void parse(String filename)throws Exception {將我們的解析器對象化ConfigParser handler=new ConfigParser();獲取SAX工廠對象SAXParserFactory factory=SAXParserFactory.newInstance();factory.setNamespaceAware(false);factory.setValidating(false);獲取SAX解析SAXParser parser=factory.newSAXParser();得到配置文件myenv.xml所在目錄.tomcat中是在WEB-INF/classes下例中BeansConstants是用來存放xml文件中配置信息的類,可以自己代替或定義URL confURL=BeansConstants.class.getClassLoader().getResource(filename);try{將解析器和解析對象myenv.xml聯系起來,開始解析parser.parse(confURL.toString(),handler);獲取解析成功后的屬性 以后 我們其他應用程序只要調用本程序的props就可以提取出屬性名稱和值了props=handler.getProps();}finally{factory=null;parser=null;handler=null;}}}由于我們的XML文件是使用最簡單的形式,因此解析器相對簡單,但是這已經足夠對付我們的配置文件了www.anxorj.tw防采集請勿采集本網。

XML(簡介)

添加就好了,把一個節點添加到另一個節點里面 api里面有添加方法的,最好記得保持一下xml文檔。保持(就是你添加的節點添加到內存里面xml了,并沒有添加到本地xml里面)

       XML(可擴展標記語言)在 20 世紀 90 年代后期登上舞臺后,就一直是眾多活動和狂熱思索的焦點。XML 只是基于普通文本,但卻提供了幾乎可以在任何兩個應用程序間共享數據的方式。

?最近遇到一個問題,用java解析xml時,需要獲得一個xml文檔中指定的某個節點,當然最簡單的辦法就是遍歷所有的節點,如某個節點滿足條件,則是我們要的結果,但我不想遍歷所有的節點,因為這個

       雖然 XML 在概念上很簡單,但對 XML 的處理卻通常很煩瑣(需要編寫大量重復性的代碼)和復雜(很多容易被忽視的細節導致錯誤)。     

import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.w3c.dom.*;import org.xml.sax.SAXException;import javax

什么時候使用 XML?

思路如下: xml文件未知不明白什么意思?我索性就理解為一個目錄下有很多xml文件,每個xml文件獲取其中的bean節點屬性。1>有xml文件路徑,獲取該路徑下的所有文件,用后綴“.xml”或“.XML”過濾

       什么時候在Web 應用程序中使用 XML? 你需要處理已經保存在 XML 中的數據時。 你希望用 XML 保存數據并為將來可能的整合做準備時。(XML 在應用程序整合的場景中最有意義) 你希望使用依賴于 XML 的技術時。(Web 服務使用各種建立在 XML 上的標準) 注解:        必須理解的一個重要概念是,存儲數據時必須決定兩件事情: 確定數據結構化的方式(邏輯格式) 確定數據保存的方式(物理存儲)

try{ SAXReader reader=new SAXReader();Document dom=reader.read(new File(\"xml路徑\"));Element element=dom.getRootElement();String value=element.attribute(\"timestamp\").getText();}catch

       XML 是格式的選擇而不是存儲的選擇。也就是說,即使你決定用 XML 保存數據,你還要決定是保存到數據庫字段里,還是要插入到一個文件里,或者只是以字符串或其他對象的形式保存在內存中。

XML 簡介

       XML 規范是由 W3C(World Wide Web Consortium)定義的一組指南,用于以純文本的形式描述結構化數據,一種基于尖括號間標簽的標記語言。

       XML 沒有一組固定的標簽。相反,XML 是一種可用于創建其他標記語言的元語言。

       下面的文檔顯示一個保存產品類別的自定義 XML 格式:

<?xml version="1.0" encoding="utf-8" ?><productCatalog> <catalogName>Acme Fall 2015 Catalog</catalogName> <expiryDate>2015-01-01</expiryDate> <products> <product id="1001"> <productName>Magic Ring</productName> <productPrice>342.10</productPrice> <inStock>true</inStock> </product> <product id="1002"> <productName>Flying Carpet</productName> <productPrice>982.99</productPrice> <inStock>true</inStock> </product> </products></productCatalog>

       標簽可以自由使用最能描述你的數據的任意名稱,正是這種靈活性使得 XML 非常成功。當然,靈活性也會有缺點。不同公司完全可用不同的標簽名來描述相似的數據,盡管所有應用程序都能夠解析 XML 數據,但數據的寫入者和讀取者需要對標簽和結構達成共識,才能使讀取者可用解釋數據并抽取有意義的信息。 

XML 的優點

       今天,XML 比過去任何一天都更為有用,F代應用程序使用 XML 的好處有以下幾點: 適應性。XML 無處不在,無論什么時候需要共享數據,XML 都會成為首選目標。 擴展性和靈活性。XML 不會強加任何數據語義的規則,適用于任意數據的類型并且實現的代價很低。 相關標準和工具。XML 成功的另一個原因在于創建和處理 XML 的工具(解析器)和相關標準(XML架構、XPath、XSLT)。這樣幾乎每種語言的開發者都有現成的組件用于閱讀 XML,按某種規則(被稱作架構)驗證 XML 的有效性,將 XML 轉換格式等。 

格式良好的 XML

       XML 是一個非常嚴格的標準,這種嚴格性是用于保留廣泛的兼容性的。(臭名昭著的 HTML 語言就是在沒有這種嚴格性標準下的產物)

       所有的 XML 解析器都會執行一些基本的質量檢查。如果一個 XML 文檔不能滿足所有標準,它就會被徹底拒絕。否則,它就被認為是格式良好的。格式良好的 XML 未必就是正確的 XML ,例如含有錯誤數據,但 XML 解析器能夠解析它。

       XML 文檔必須滿足下面這些條件才能被認為是格式良好的: 每個開始標簽必須有一個對應的結束標簽 空元素必須以“/>”結束 元素可以嵌套但不能交錯

XML 是嚴格區分大小寫的,因此 <FirstName> 和 </firstName > 不能配對 一個元素不能有兩個或更多的同名特性,但是可以嵌套多個同名的元素 一個文檔只可以有一個根元素 所有特性在值的前后都要有引號 注釋不能放入標簽中(它們包含在 <!-- 和  --> 標記中) 

XML 命名空間

       隨著 XML 標準的成長,已創建了數十種 XML 標記語言(通常叫做 XML 語法)。其中很多屬于特定的行業、流程和信息類型。如果你需要同時組合兩個具有相同名稱元素的 XML 語法,會發生什么呢?另一個更典型的問題是如何區分它們?

       解決辦法在于 XML 命名空間標準。這個標準的核心思想是所有的 XML 標記語言都擁有能夠唯一區分相關元素的命名空間。簡單的說,命名空間可以在整合時消除同名元素的歧義。

       所有的 XML 命名空間都使用 URI(Universal Resource Identifiers,統一資源標識符),一般看起來和網頁的 URL 相似。例如,http://www.mycompany.com/mystandard 是一種典型的命名空間,但這不是必要的(也不應該被假設),命名空間可以是任意文本序列,標準是為了確保它的唯一性。

       要指定某個元素屬于特定的命名空間,只需在開始標簽中加入 xmlns(XML Name Space)特性表明要使用的命名空間即可。例如,下面這個元素是http://mycompany/OrderML 命名空間的一部分。

<order xmlns="http://mycompany/OrderML"></order> 你一定會厭倦在所有元素上加入這個特性的煩瑣操作,幸好,如果像下面這樣加入命名空間,它會成為所有子元素默認的命名空間:<product xmlns="http://mycompany/OrderML"> <productName>Flying Carpet</productName> <productPrice>982.99</productPrice> <inStock>true</inStock></product> 你還可以自定義命名空間前綴,在 xmlns 特性中插入一個冒號和一個你想用作前綴的字符:<ord:order xmlns:ord="http://mycompany/OrderML" xmlns:cli="http://mycompany/ClientML"> <cli:client> <cli:firstName>...</cli:firstName> <cli:lastName>...</cli:lastName> </cli:client> <ord:orderItem>...</ord:orderItem> <ord:orderItem>...</ord:orderItem></ord:order>

XML 架構

       XML 的靈活性也帶來了一些問題。世界各地的開發人員都使用你的 XML 格式,怎樣才能保證所有人都遵守規則?

       解決辦法是創建一個格式文檔,它定義你的自定義標記語言的規則,它被稱為架構。這些規則不會包括語法細節(那是 XML 標準所要規定的),架構文檔需要定義的是符合你的數據類型的邏輯規則,它包括以下幾項: 文檔詞匯。它定義了哪些元素或特性的名字可以出現在你的 XML 文檔中。 文檔結構。它定義了標簽放在哪兒,可以指定標簽之間的順序,還可以指定某個元素可以出現的次數。 支持的數據類型?梢远x數據是文本,或者必須是可以解析的數值數據、日期信息等。 允許的數據范圍?蓪抵迪拗圃诜秶鷥,文本限定在特定長度內,強迫正則表達式模式匹配,或者限制僅可以是某些特定的值。

       下面的這個 XML 架構定義了前面所示的產品類別規則:

<?xml version="1.0" encoding="utf-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="productCatalog"> <xsd:complexType> <xsd:sequence> <xsd:element name="CatalogName" type="xsd:string" /> <xsd:element name="expiryDate" type="xsd:date" /> <xsd:element name="products"> <xsd:complexType> <xsd:sequence> <xsd:element name="product" type="productType" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="productType"> <xsd:sequence> <xsd:element name="productName" type="xsd:string" /> <xsd:element name="productPrice" type="xsd:decimal" /> <xsd:element name ="inStock" type="xsd:boolean" /> </xsd:sequence> <xsd:attribute name="id" type="xsd:integer" use="required" /> </xsd:complexType></xsd:schema> 所有的架構文檔都是以根元素 <schema> 開頭的 XML 文檔 所有可用的元素都已經在 XML 架構空間定義了(http://www.w3.org/2001/XMLSchema) 你的架構文檔必須使用正確的命名空間名(前綴一般是 xsd 或 xs ,你也可以自定義) 在 <schema> 元素內,有兩種類型的定義 <element> 定義目標文檔必須遵循的結構 <complexType> 定義文檔結構較小的數據結構 <element>標簽是架構的核心,同時它也是所有驗證的起點

       在這個示例中,<element>標簽確定產品類別必須以一個叫做<productCatalog>的根元素開始。<productCatalog>元素內部是一個由3個元素組成的序列。第一個是<catalogName>,它包含普通文本;第二個是<expiryDate>,它包含符合日期呈現規則的文本;第三個是<products>,它包含<product>元素的列表。

       每個<product>元素都是一個復雜的類型,因此文檔后面又使用<complexType>進行了定義。這個復雜類型(名為<productType>)由含有產品信息的 3 個元素所組成的序列構成。這些元素分別保存文本(<productName>)、十進制數(<productPrice>)、布爾值(<inStock>)。這個復雜類型還包括一個必須的特性 id。

xml文件xml version="1.0"encoding="GBK?rar</rarPath>->C:/Program Files/WinRAR/WinRAR.exerun1234!生成xml文件路徑 暫時沒用->上機日志文件路徑->下機日志文件路徑->java 代碼public static void main(String[]args)throws Exception{SAXBuilder builder=new SAXBuilder();File xmlFile=new File("c:/config.xml");Document doc=builder.build(xmlFile);Element root=doc.getRootElement();根路徑Element element=root.getChild("rootPath");System.out.println(element.getAttributeValue("name"));rar命令路徑element=root.getChild("rarPath");System.out.println(element.getText());zip壓縮文件密碼element=root.getChild("zipPass");System.out.println(element.getText());日志文件路徑element=root.getChild("filePath");List<Element>elementList=element.getChildren();for(Element e:elementList){System.out.println(e.getAttributeValue("name"));}}內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • 簡介objective-c解析xml與json數據格式的方法
  • 簡介c#讀取xml的兩種方式
  • xmlhttprequest的屬性和方法簡介
  • [轉]xmlhttprequest的屬性和方法簡介
  • 氣象 xml 數據源應用程序開發指南-簡介
  • xml簡介
  • utf8轉成gb2312亂碼問題解決方案
  • xml 增、刪、改和查示例
  • 使用xsl將xml文檔中的cdata注釋輸出為html文本
  • 用asp與xml實現交互的一個實例源碼
  • asp下利用xml打包網站文件
  • 氣象 xml 數據源應用程序開發指南-操作檢查列表
  • 氣象 xml 數據源應用程序開發指南-內容目錄
  • 使用xsl將xml文檔中的cdata注釋輸出為html文本
  • 編寫xml沒有代碼提示的解決方法
  • 氣象 xml 數據源應用程序開發指南-簡介
  • java中如何讀取xml中數據。多節點的。給我一個例子,謝謝。
  • java中如何讀取xml中數據。多節點的。給我一個例子,謝謝。
  • java中怎么直接獲得xml中的某個指定的節點
  • java怎么通過xml節點的屬性獲取這個節點的值
  • 求java高手處理一個xml 根據自定義節點生成報文的例子
  • java中如何直接獲得xml中的某個指定的節點
  • 通過java如何操作xml向其節點中添加內容比如想添加的內容
  • java如何從一個xml文件讀取根節點、子節點屬性。
  • java獲取xml節點值
  • java 解析xml 獲得每個節點的值
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全xml基礎xml示例wml教程首頁xml/rssxml示例簡介objective-c解析xml與json數據格式的方法簡介c#讀取xml的兩種方式xmlhttprequest的屬性和方法簡介[轉]xmlhttprequest的屬性和方法簡介氣象 xml 數據源應用程序開發指南-簡介xml簡介utf8轉成gb2312亂碼問題解決方案xml 增、刪、改和查示例使用xsl將xml文檔中的cdata注釋輸出為html文本用asp與xml實現交互的一個實例源碼asp下利用xml打包網站文件氣象 xml 數據源應用程序開發指南-操作檢查列表氣象 xml 數據源應用程序開發指南-內容目錄使用xsl將xml文檔中的cdata注釋輸出為html文本編寫xml沒有代碼提示的解決方法氣象 xml 數據源應用程序開發指南-簡介powerbuilder(pb)中 xml的應用一utf8轉成gb2312亂碼問題解決方案javascript xml xsl取值及數據修讀大數據量的xml文件的讀取問題用xslt將xml解析成xhtml的代碼jscript與vbscript 操作xml元素屬一個用xslt樣式將xml解析為xhtml使用spry輕松將xml數據顯示到htmxml 增、刪、改和查示例asp下利用xml打包網站文件使用xsl將xml文檔中的cdata注釋輸出為htm使用spry輕松將xml數據顯示到html頁的方法一個用xslt樣式將xml解析為xhtml的類tranxpath簡介_動力節點java學院整理氣象 xml 數據源應用程序開發指南-內容目xml中顯示html的小技巧javascript xml xsl取值及數據修改asp讀取xml文件和記數jscript與vbscript 操作xml元素屬性的代碼氣象 xml 數據源應用程序開發指南-操作檢
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载