锘??xml version="1.0" encoding="utf-8" standalone="yes"?> XML 瑙f瀽鍣ㄩ氬父鎯呭喌涓嬩細澶勭悊XML鏂囨。涓殑鎵鏈夋枃鏈?/strong> 褰揦ML鍏冪礌琚В鏋愮殑鏃跺欙紝XML鍏冪礌鍐呴儴鐨勬枃鏈篃浼氳瑙f瀽: XML瑙f瀽鍣ㄨ繖鏍峰仛鐨勫師鍥犳槸XML鍏冪礌鍐呴儴鍙兘榪樺寘鍚簡鍒殑鍏冪礌錛岃薄涓嬮潰鐨勪緥瀛愶紝name鍏冪礌鍐呴儴鍖呭惈浜唂irst鍜宭ast涓や釜鍏冪礌: 瑙f瀽鍣ㄤ細璁や負涓婇潰鐨勪唬鐮佹槸榪欐牱鐨? 涓嶅悎娉曠殑XML瀛楃蹇呴』琚浛鎹負鐩稿簲鐨勫疄浣撱? 濡傛灉鍦╔ML鏂囨。涓嬌鐢ㄧ被浼?<" 鐨勫瓧絎? 閭d箞瑙f瀽鍣ㄥ皢浼氬嚭鐜伴敊璇紝鍥犱負瑙f瀽鍣ㄤ細璁や負榪欐槸涓涓柊鍏冪礌鐨勫紑濮嬨傛墍浠ヤ笉搴旇璞′笅闈㈤偅鏍蜂功鍐欎唬鐮? 涓轟簡閬垮厤鍑虹幇榪欑鎯呭喌錛屽繀欏誨皢瀛楃"<" 杞崲鎴愬疄浣擄紝璞′笅闈㈣繖鏍? 涓嬮潰鏄簲涓湪XML鏂囨。涓瀹氫箟濂界殑瀹炰綋: 娉ㄦ剰: 鍙湁"<" 瀛楃鍜?&"瀛楃瀵逛簬XML鏉ヨ鏄弗鏍肩姝嬌鐢ㄧ殑銆傚墿涓嬬殑閮芥槸鍚堟硶鐨勶紝涓轟簡鍑忓皯鍑洪敊錛屼嬌鐢ㄥ疄浣撴槸涓涓ソ涔犳儻銆?/p>
鍦–DATA鍐呴儴鐨勬墍鏈夊唴瀹歸兘浼氳瑙f瀽鍣ㄥ拷鐣ャ?/strong> 濡傛灉鏂囨湰鍖呭惈浜嗗緢澶氱殑"<"瀛楃鍜?&"瀛楃鈥斺斿氨璞$▼搴忎唬鐮佷竴鏍鳳紝閭d箞鏈濂芥妸浠栦滑閮芥斁鍒癈DATA閮ㄤ歡涓?/p>
涓涓?CDATA 閮ㄤ歡浠?<![CDATA[" 鏍囪寮濮嬶紝浠?]]>"鏍囪緇撴潫: 鍦ㄥ墠闈㈢殑渚嬪瓙涓紝鎵鏈夊湪CDATA閮ㄤ歡涔嬮棿鐨勬枃鏈兘浼氳瑙f瀽鍣ㄥ拷鐣ャ?/p>
CDATA閮ㄤ歡涔嬮棿涓嶈兘鍐嶅寘鍚獵DATA閮ㄤ歡錛堜笉鑳藉祵濂楋級銆傚鏋淐DATA閮ㄤ歡鍖呭惈浜嗗瓧絎?]]>" 鎴栬?<![CDATA[" 錛屽皢寰堟湁鍙兘鍑洪敊鍝︺?/p>
鍚屾牱瑕佹敞鎰忓湪瀛楃涓?]]>"涔嬮棿娌℃湁絀烘牸鎴栬呮崲琛岀銆?/p>
<message>This text is also parsed</message>
<name><first>Bill</first><last>Gates</last></name>
<name>
<first>Bill</first>
<last>Gates</last>
</name>
杞箟瀛楃
<message>if salary < 1000 then</message>
<message>if salary < 1000 then</message>
<
<
灝忎簬鍙?/td>
>
>
澶т簬鍙?/td>
&
&
鍜?/td>
'
'
鍗曞紩鍙?/td>
"
"
鍙屽紩鍙?/td>
瀹炰綋蹇呴』浠ョ鍙?&"寮澶達紝浠ョ鍙?;"緇撳熬銆?/strong>
CDATA閮ㄤ歡
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1
}
else
{
return 0
}
}
]]>
</script>
CDATA娉ㄦ剰浜嬮」:
涓涓猻chema涓0鏄庣殑鍏冪礌鎴栬呯被鍨嬪彧鑳藉綊鍒頒袱涓懡鍚嶇┖闂翠腑鐨勬煇涓涓幓錛岃繖涓や釜鏄紝鏃犲悕鍛藉悕絀洪棿鍜岀敱targetSchema灞炴ф寚鏄庣殑鐩爣鍛藉悕絀洪棿銆傝宼argetSchema灞炴у彧鑳藉湪xs錛歴chema鐨勫畾涔変腑澹版槑錛屽洜鑰岋紝涓涓猻chema涓殑瀹氫箟鐨勫厓绱犳垨綾誨瀷鍙彲鑳藉綊灞炰簬涓涓湁鍚嶅懡鍚嶇┖闂達紙浣嗘槸榪樻湁鍙兘褰掑睘浜庢棤鍚嶅懡鍚嶇┖闂達級銆?/p>
褰揺lementFormDefault="qualified" 鏃訛紝鎵鏈夊叏灞鍏冪礌鐨勫瓙鍏冪礌灝嗚浠ョ己鐪佹柟寮忔斁鍒扮洰鏍囧懡鍚嶇┖闂達紝浣嗘槸鍏ㄥ眬鍏冪礌鎴栬呯被鍨嬪皢琚斁鍒扮洰鏍囧懡鍚嶇┖闂達紱鑰屽綋elementFormDefault="unqualified" 鏃訛紝鎵鏈夊叏灞鍏冪礌鐨勫瓙鍏冪礌灝嗚浠ョ己鐪佹柟寮忔斁鍒版棤鍚嶅懡鍚嶇┖闂淬傝屽睘鎬х殑鍛藉悕絀洪棿綾諱技鍦扮敱attributeFormDefault="錛?鏉ユ寚鏄庛?/p>
闇瑕佹槑鐧界殑鏄紝elementFormDefault="錛? 鏄湁浣滅敤鍩熺殑錛屽茍涓旀槸琚戶鎵跨殑錛岄櫎闈炲湪瀛愬畾涔変腑瑕嗙洊鐖跺畾涔夈?/p>
涓嬮潰涓変釜渚嬪瓙璇存槑浜唀lementFormDefault鐨勪嬌鐢ㄦ晥鏋溿傜孩鑹茶〃紺哄睘浜庡凡鍛藉悕絀洪棿鐨勫厓绱狅紝钃濊壊琛ㄧず灞炰簬鏈懡鍚嶇┖闂寸殑鍏冪礌銆?/p>
1.瀹氫箟浜嗙洰鏍囧懡鍚嶇┖闂達紝 鍏ㄥ眬elementFormDefault=“unqualified”銆傝繖鏃墮櫎浜嗗叏灞鍏冪礌鎴栬呯被鍨嬪皢褰掍簬鐩爣鍛藉悕絀洪棿澶栵紝灞閮ㄥ厓绱犲皢褰掍簬鏃犲悕鍛藉悕絀洪棿銆?/p>
unqualified.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="aaaa" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:element name="c">
<xs:complexType>
<xs:sequence>
<xs:element name="c1" type="xs:double"/>
<xs:element name="c2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
unqualified.xml
<?xml version="1.0" encoding="UTF-8"?>
<n:c xmlns:n="aaaa" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="aaaa unqualified.xsd">
<c1>3.141593E0</c1>
<c2>String</c2>
</n:c>
2. 瀹氫箟浜嗙洰鏍囧懡鍚嶇┖闂達紝 鍏ㄥ眬elementFormDefault=“qualified”銆傝繖鏃跺叏灞鍏冪礌鎴栬呯被鍨嬪皢褰掍簬鐩爣鍛藉悕絀洪棿錛屽眬閮ㄥ厓绱犲皢浠ョ己鐪佹柟寮忓綊浜庣洰鏍囧懡鍚嶇┖闂淬?/p>
qualified.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="aaaa" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="c">
<xs:complexType>
<xs:sequence>
<xs:element name="c1" type="xs:double"/>
<xs:element name="c2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
qualified.xml
<?xml version="1.0" encoding="UTF-8"?>
<c xmlns="aaaa" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="aaaa qualified.xsd">
<c1>3.141593E0</c1>
<c2>String</c2>
</c>
3. 瀹氫箟浜嗙洰鏍囧懡鍚嶇┖闂達紝 鍏ㄥ眬elementFormDefault=“unqualified”銆傝繖鏃跺叏灞鍏冪礌錛坈錛夋垨鑰呯被鍨嬪皢褰掍簬鐩爣鍛藉悕絀洪棿銆傚眬閮ㄥ厓绱狅紙c1錛宑2錛変互緙虹渷鏂瑰紡褰掍簬鏃犲悕鍛藉悕絀洪棿銆傚眬閮ㄥ厓绱狅紙c3錛夊湪灞閮ㄥ畾涔変腑浣跨敤form=“qualified”瑕嗙洊鍏ㄥ眬璁懼畾鐨剈nqualified錛岃繖浣垮緱c3褰掍簬鐩爣鍛藉悕絀洪棿錛堝鏋滃畠鏈夊瓙鍏冪礌錛屽瓙鍏冪礌灝嗕互緙虹渷鏂瑰紡褰掍簬鐩爣鍛藉悕絀洪棿錛夈?/p>
qualified2.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="aaaa" elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xs:element name="c">
<xs:complexType>
<xs:sequence>
<xs:element name="c1" type="xs:double"/>
<xs:element name="c2" type="xs:string"/>
<xs:element name="c3" type="xs:integer" form="qualified"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
qualified2.xml
<?xml version="1.0" encoding="UTF-8"?>
<n:c xmlns:n="aaaa" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="aaaa qualified2.xsd">
<c1>3.141593E0</c1>
<c2>String</c2>
<n:c3>0</n:c3>
</n:c>
This is a simplified fraction of a WSDL document:
<message name="getTermRequest"> <portType name="glossaryTerms"> |
In this example the <portType> element defines "glossaryTerms" as the name of a port, and "getTerm" as the name of an operation.
The "getTerm" operation has an input message called "getTermRequest" and an output message called "getTermResponse".
The <message> elements define the parts of each message and the associated data types.
Compared to traditional programming, glossaryTerms is a function library, "getTerm" is a function with "getTermRequest" as the input parameter and getTermResponse as the return parameter.
SAX 妗嗘灦鐨勭己鐐規槸涓嶈兘璁板綍姝e湪澶勭悊鍏冪礌鐨勪笂涓嬫枃銆備絾鏄紭鐐規槸榪愯鏃跺崰鍐呭瓨絀洪棿姣旇緝灝忥紝鏁堢巼楂樸侱OM 妗嗘灦鐢變簬鍦ㄥ鐞?XML 鏃墮渶瑕佷負鍏舵瀯閫犱竴媯墊爲錛屾墍浠ョ壒鐐規濂界浉鍙嶃係tAX 妗嗘灦鍑虹幇浜?Java SE 6 涓紝瀹冪殑璁捐鐩爣灝辨槸瑕佺粨鍚?SAX 妗嗘灦鍜?DOM 妗嗘灦鐨勪紭鐐廣傛棦瑕佹眰榪愯鏃舵晥鐜囷紝涔熻姹備繚鎸佸厓绱犵殑涓婁笅鏂囩姸鎬併?a >娓呭崟 5 鏄竴孌典嬌鐢?StAX 妗嗘灦澶勭悊 XML 鏂囦歡鐨勪唬鐮併?/p>
娓呭崟 5. 浣跨敤 StAX 妗嗘灦澶勭悊 XML 鏂囦歡
import java.io.*; import javax.xml.stream.*; import javax.xml.stream.events.*; public class StAXTest { public static void main(String[] args) { XMLInputFactory inputFactory = XMLInputFactory.newInstance(); InputStream input = new ByteArrayInputStream( ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<work-contact-info>" + "<Location>Shanghai-shuion-333</Location>" + "<Postal>200020</Postal>" + "<Tel><fix>63262299</fix><mobile>1581344454</mobile></Tel>" + "<Appellation>Mr. Wang</Appellation>" + "</work-contact-info>").getBytes()); try { XMLEventReader xmlEventReader = inputFactory.createXMLEventReader(input); while (xmlEventReader.hasNext()) { XMLEvent event = xmlEventReader.nextEvent(); if (event.isStartElement()) { StartElement startElement = event.asStartElement(); System.out.println(startElement.getName().toString()); } if (event.isCharacters()) { Characters text = event.asCharacters(); if (!text.isWhiteSpace()) { System.out.println("\t" + text.getData()); } } } } catch (XMLStreamException e) { e.printStackTrace(); } } } |
瑙傚療鍚庡彲浠ュ彂鐜?StAX 妗嗘灦鍜?SAX 妗嗘灦鍏鋒湁鐩鎬技鐨勫湴鏂廣係tAX 鏈?Event.isStartElement
鏂規硶錛孲AX 鏈?DefaultHandler.startElement
鏂規硶銆係tAX 鏈?Event.isCharacter
鏂規硶錛孲AX 鏈?DefaultHandler.character
鏂規硶銆傚疄闄呬笂榪欎袱涓鏋跺鐞?XML 鏂囦歡鐨勬椂鍊欎嬌鐢ㄤ簡鐩鎬技鐨勬ā鍨嬧斺斿皢 XML 鏂囦歡浣滀負鍏冪礌緇勬垚鐨勬祦錛岃屼笉鍚屼簬 DOM 鐨勬爲妯″瀷銆傝В鏋?XML 鏂囦歡鏃訛紝搴旂敤紼嬪簭璋冪敤 XMLEventReader
鐨?nextEvent
鏂規硶瑙f瀽涓嬩竴涓厓绱狅紙鎴栬呮槸瑙f瀽鍚屼竴涓厓绱狅紝鏍規嵁瑙f瀽鐨勪笉鍚岄樁孌碉紝浜х敓涓嶅悓鍏冪礌錛夛紝StAX 灝變細閫氳繃 XMLEventReader
浜х敓涓涓簨浠躲傛瘮濡傞拡瀵瑰悓涓涓厓绱狅紝鍙兘浼氫駭鐢?StartElement
鍜?EndElement
浜嬩歡銆傚艦璞$殑璇?XMLEventReader
灝卞儚鏄竴鏍圭懷瀛愶紝鎷戒竴涓嬶紝瑙f瀽涓涓厓绱狅紝浜х敓涓涓簨浠躲備簬鏄繖縐嶆妧鏈篃琚О涓?#8221;Pull Parser”鎶鏈係tAX 鍦ㄥ鐞?XML 鏂囦歡鏃訛紝浜х敓鐨勬墍鏈変簨浠舵槸閫氳繃涓涓?Iterator
錛?code>XMLEventReader 緇ф壙浜?Iterator
錛夎繑鍥炵殑銆傚簲鐢ㄧ▼搴忛氳繃榪欎釜 Iterator
鑳界煡閬撴煇涓В鏋愪簨浠剁殑鍓嶅悗鍒嗗埆鏄粈涔堛傝繖綾諱俊鎭氨鏄竴涓厓绱犵殑涓婁笅鏂囦俊鎭?/p>
<!-- address.dtd -->鍏朵腑
<!ELEMENT address (name, street, city, state, postal-code)>
<!ELEMENT name (title? first-name, last-name)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT first-name (#PCDATA)>
<!ELEMENT last-name (#PCDATA)>
<!ELEMENT street (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT state (#PCDATA)>
<!ELEMENT postal-code (#PCDATA)>
#PCDATA
#PCDATA
stands for parsed character data; you can't include another element in these elements.<!ELEMENT city (#PCDATA)>
<!ATTLIST city state CDATA #REQUIRED
postal-code CDATA #REQUIRED>
A sample XML schema
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="name"/>
<xsd:element ref="street"/>
<xsd:element ref="city"/>
<xsd:element ref="state"/>
<xsd:element ref="postal-code"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="name">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="title" minOccurs="0"/>
<xsd:element ref="first-Name"/>
<xsd:element ref="last-Name"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="first-Name" type="xsd:string"/>
<xsd:element name="last-Name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="state">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="postal-code">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]{5}(-[0-9]{4})?"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:schema>
閫夋嫨 DOM 榪樻槸閫夋嫨 SAX錛岃繖鍙栧喅浜庝笅闈㈠嚑涓洜绱狅細
SAX 鍜?DOM 涓嶆槸鐩鎬簰鎺掓枼鐨勶紝璁頒綇榪欑偣寰堥噸瑕併傛偍鍙互浣跨敤 DOM 鏉ュ垱寤?SAX 浜嬩歡嫻侊紝涔熷彲浠ヤ嬌鐢?SAX 鏉ュ垱寤?DOM 鏍戙備簨瀹炰笂錛岀敤浜庡垱寤?DOM 鏍戠殑澶у鏁拌В鏋愬櫒瀹為檯涓婇兘浣跨敤 SAX 鏉ュ畬鎴愯繖涓換鍔★紒
characters()
浜嬩歡涓嶄粎鍖呮嫭涓嶄粎涓涓瓧絎︿覆銆傚畠榪樺寘鎷搗濮嬪拰闀垮害淇℃伅銆傚疄闄呬笂錛?code>ch 瀛楃鏁扮粍鍖呮嫭鏁翠釜鏂囨。銆傚簲鐢ㄧ▼搴忎竴瀹氫笉鑳藉皾璇曡鍙栭閫佺粰 characters()
浜嬩歡鐨勮寖鍥翠箣澶栫殑瀛楃銆?/font>XPath 鏄疿ML鐨勬煡璇㈣璦錛屽拰SQL鐨勮鑹插緢綾諱技銆備互涓嬮潰XML涓轟緥錛屼粙緇峏Path 鐨勮娉曘?/p>
<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
<cd country="USA">
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<price>10.90</price>
</cd>
<cd country="UK">
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<price>9.90</price>
</cd>
<cd country="USA">
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<price>9.90</price>
</cd>
</catalog>
瀹氫綅鑺傜偣
XML鏄爲鐘剁粨鏋勶紝綾諱技妗f緋葷粺鍐呮暟鎹す鐨勭粨鏋勶紝XPath涔熺被浼兼。妗堢郴緇熺殑璺緞鍛藉悕鏂瑰紡銆備笉榪嘪Path 鏄竴縐嶆ā寮?Pattern)錛屽彲浠ラ夊嚭 XML妗f涓紝璺緞絎﹀悎鏌愪釜妯″紡鐨勬墍鏈夎妭鐐瑰嚭鏉ャ備緥濡傝閫塩atalog搴曚笅鐨刢d涓墍鏈塸rice鍏冪礌鍙互鐢細
/catalog/cd/price
濡傛灉XPath鐨勫紑澶存槸涓涓枩綰匡紙/錛変唬琛ㄨ繖鏄粷瀵硅礬寰勩傚鏋滃紑澶存槸涓や釜鏂滅嚎錛?/錛夎〃紺烘枃浠朵腑鎵鏈夌鍚堟ā寮忕殑鍏冪礌閮戒細琚夊嚭鏉ワ紝鍗充嬌鏄浜庢爲涓笉鍚岀殑灞傜駭涔熶細琚夊嚭鏉ャ備互涓嬬殑璇硶浼氶夊嚭鏂囦歡涓墍鏈夊彨鍋歝d鐨勫厓绱狅紙鍦ㄦ爲涓殑浠諱綍灞傜駭閮戒細琚夊嚭鏉ワ級錛?/p>
//cd
閫夋嫨鏈煡鐨勫厓绱?/strong> 浠ヤ笅鐨勮娉曚細閫夊嚭鎵鏈塩atalog鐨勫瓙鍏冪礌涓紝鍖呭惈鏈塸rice浣滀負瀛愬厓绱犵殑鍏冪礌銆?/p>
浠ヤ笅鐨勮娉曚細閫夊嚭鏈変袱灞傜埗鑺傜偣錛屽彨鍋歱rice鐨勬墍鏈夊厓绱犮?/p>
浠ヤ笅鐨勮娉曚細閫夋嫨鍑烘枃浠朵腑鐨勬墍鏈夊厓绱犮?/p>
瑕佹敞鎰忕殑鏄紝鎯寵瀛樺彇涓嶅垎灞傜駭鐨勫厓绱狅紝XPath璇硶蹇呴』浠ヤ袱涓枩綰垮紑澶?//)錛屾兂瑕佸瓨鍙栨湭鐭ュ厓绱犳墠鐢ㄦ槦鍙?*)錛屾槦鍙峰彧鑳戒唬琛ㄦ湭鐭ュ悕縐扮殑鍏冪礌錛屼笉鑳戒唬琛ㄦ湭鐭ュ眰綰х殑鍏冪礌銆?/p>
閫夋嫨鍒嗘敮 浠ヤ笅璇硶閫夋嫨catalog涓殑鏈鍚庝竴涓猚d鍏冪礌錛氾紙XPathj騫舵病鏈夊畾涔?first() 榪欑鍑藉紡鍠旓紝鐢ㄤ笂渚嬬殑 [1]灝卞彲浠ュ彇鍑虹涓涓厓绱犮?/p>
浠ヤ笅璇硶閫夊嚭鍚湁price瀛愬厓绱犵殑鎵鏈?catalog/cd鍏冪礌銆?/p>
浠ヤ笅璇硶閫夊嚭price鍏冪礌鐨勫肩瓑浜?0.90鐨勬墍鏈?catalog/cd鍏冪礌 浠ヤ笅璇硶閫夊嚭price鍏冪礌鐨勫肩瓑浜?0.90鐨勬墍鏈?catalog/cd鍏冪礌鐨刾rice鍏冪礌 閫夋嫨涓涓互涓婄殑璺緞 閫夋嫨鎵鏈塼itle浠ュ強artist鍏冪礌 閫夋嫨鎵鏈塼itle浠ュ強artist浠ュ強price鍏冪礌 閫夋嫨灞炴?/strong> 閫夋嫨鎵鏈夊惈鏈塩ountry榪欎釜灞炴х殑cd鍏冪礌錛?/p>
浠ヤ笅璇硶閫夋嫨鍑哄惈鏈夊睘鎬х殑鎵鏈塩d鍏冪礌 浠ヤ笅璇硶閫夋嫨鍑篶ountry灞炴у間負UK鐨刢d鍏冪礌
浣跨敤鏄熷彿錛圵ildcards,錛婏級鍙互閫夋嫨鏈煡鐨勫厓绱犮備笅闈㈣繖涓娉曚細閫夊嚭/catalog/cd 鐨勬墍鏈夊瓙鍏冪礌錛?/p>
/catalog/cd/*
/catalog/*/price
/*/*/price
//*
浣跨敤涓嫭鍙峰彲浠ラ夋嫨鍒嗘敮銆備互涓嬬殑璇硶浠巆atalog鐨勫瓙鍏冪礌涓彇鍑虹涓涓彨鍋歝d鐨勫厓绱犮俋Path鐨勫畾涔変腑娌℃湁絎?鍏冪礌榪欑涓滆タ銆?/p>
/catalog/cd[1]
/catalog/cd[last()]
/catalog/cd[price]
/catalog/cd[price=10.90]
/catalog/cd[price=10.90]/price
浣跨敤Or鎿嶄綔鏁?|)灝卞彲浠ラ夋嫨涓涓互涓婄殑璺緞銆備緥濡傦細
/catalog/cd/title | catalog/cd/artist
//title | //artist
//title | //artist | //price
鍦╔Path涓紝闄や簡閫夋嫨鍏冪礌浠ュ錛屼篃鍙互閫夋嫨灞炴с傚睘鎬ч兘鏄互@寮澶淬備緥濡傞夋嫨鏂囦歡涓墍鏈夊彨鍋歝ountry鐨勫睘鎬э細
//@country
//cd[@country]
//cd[@*]
//cd[@country='UK']
]]>