锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鐮旂┒鍙戠幇錛氬睘鎬э紙鍙橀噺錛夊彲鍒嗕負涓夌被錛堝璞″睘鎬с佸叏灞鍙橀噺鍜屽眬閮ㄥ彉閲忥級 “綾誨唴閮紙瀵瑰唴涓嶅澶栵級”璋冪敤銆?/p>
JS鍑芥暟鐨勫0鏄庝笌璁塊棶鍘熺悊 <script type="text/javas <script type="text/javas
姣棤鐤戦棶錛岃繖鍦℅BK緙栫爜鐨勯〉闈㈣闂佹彁浜ゆ暟鎹椂鏄病鏈変貢鐮侀棶棰樼殑銆備絾鏄亣鍒癆jax灝變笉涓鏍蜂簡銆侫jax寮哄埗灝嗕腑鏂囧唴瀹硅繘琛孶TF-8緙栫爜錛岃繖鏍峰鑷磋繘鍏ュ悗绔悗浣跨敤GBK榪涜瑙g爜鏃跺彂鐢熶貢鐮併傜綉涓婄殑鎵璋撶殑緇堟瀬瑙e喅鏂規閮芥槸鎵貳鎴栬呰繃浜庡鏉傦紝渚嬪涓嬮潰鐨勬枃绔狅細 榪欐牱鐨勬枃绔犲緢澶氾紝鏄劇劧錛?/p>
濡傛灉鎻愪氦鏁版嵁鐨勬椂鍊欒兘澶熷憡璇夊悗绔紶杈撶殑緙栫爜淇℃伅鏄惁灝卞彲浠ラ伩鍏嶈繖縐嶉棶棰橈紵姣斿Ajax璇鋒眰鍛婅瘔鍚庣鏄疷TF-8錛屽叾瀹冭姹傚憡璇夊悗绔槸GBK錛岃繖鏍峰悗绔垎鍒牴鎹寚瀹氱殑緙栫爜榪涜瑙g爜鏄笉鏄氨瑙e喅闂浜嗐?/p>
鏈変袱涓棶棰橈細 瑙e喅浜嗕笂榪伴棶棰橈紝鏉ョ湅鍏蜂綋瀹炵幇鏂規銆?鍒椾竴孌礘ava浠g爜錛?/p> 瑙i噴涓嬶細 姝e垯琛ㄨ揪寮忕敤浜庡瓧絎︿覆澶勭悊錛岃〃鍗曢獙璇佺瓑鍦哄悎錛屽疄鐢ㄩ珮鏁堬紝浣嗙敤鍒版椂鎬繪槸涓嶅お鎶婃彙錛屼互鑷村線寰瑕佷笂緗戞煡涓鐣傛垜灝嗕竴浜涘父鐢ㄧ殑琛ㄨ揪寮忔敹钘忓湪榪欓噷錛屼綔澶囧繕涔嬬敤銆傛湰璐撮殢鏃朵細鏇存柊銆?br /> 鍖歸厤鍙屽瓧鑺傚瓧絎?鍖呮嫭姹夊瓧鍦ㄥ唴)錛?/p>
搴旂敤錛氳綆楀瓧絎︿覆鐨勯暱搴︼紙涓涓弻瀛楄妭瀛楃闀垮害璁?錛孉SCII瀛楃璁?錛?/p>
鍖歸厤絀鴻鐨勬鍒欒〃杈懼紡錛?/p>
鍖歸厤HTML鏍囪鐨勬鍒欒〃杈懼紡錛?/p>
鍖歸厤棣栧熬絀烘牸鐨勬鍒欒〃杈懼紡錛?/p>
搴旂敤錛歫 avascript涓病鏈夊儚v bscript閭f牱鐨則rim鍑芥暟錛屾垜浠氨鍙互鍒╃敤榪欎釜琛ㄨ揪寮忔潵瀹炵幇錛屽涓嬶細 鍒╃敤姝e垯琛ㄨ揪寮忓垎瑙e拰杞崲IP鍦板潃 涓嶈繃涓婇潰鐨勭▼搴忓鏋滀笉鐢ㄦ鍒欒〃杈懼紡錛岃岀洿鎺ョ敤split鍑芥暟鏉ュ垎瑙e彲鑳芥洿綆鍗曪紝紼嬪簭濡備笅錛?/p>
鍖歸厤Email鍦板潃鐨勬鍒欒〃杈懼紡錛?/p>
鍖歸厤緗戝潃URL鐨勬鍒欒〃杈懼紡錛?/p>
鍒╃敤姝e垯琛ㄨ揪寮忓幓闄ゅ瓧涓蹭腑閲嶅鐨勫瓧絎︾殑綆楁硶紼嬪簭錛歔*娉細姝ょ▼搴忎笉姝g‘] *娉?br />=============================== 鎴戝師鏉ュ湪CSDN涓婂彂璐村姹備竴涓〃杈懼紡鏉ュ疄鐜板幓闄ら噸澶嶅瓧絎︾殑鏂規硶錛屾渶緇堟病鏈夋壘鍒幫紝榪欐槸鎴戣兘鎯沖埌鐨勬渶綆鍗曠殑瀹炵幇鏂規硶銆傛濊礬鏄嬌鐢ㄥ悗鍚戝紩鐢ㄥ彇鍑哄寘鎷噸澶嶇殑瀛楃錛屽啀浠ラ噸澶嶇殑瀛楃寤虹珛絎簩涓〃杈懼紡錛屽彇鍒頒笉閲嶅鐨勫瓧絎︼紝涓よ呬覆榪炪傝繖涓柟娉曞浜庡瓧絎﹂『搴忔湁瑕佹眰鐨勫瓧絎︿覆鍙兘涓嶉傜敤銆?/p>
寰楃敤姝e垯琛ㄨ揪寮忎粠URL鍦板潃涓彁鍙栨枃浠跺悕鐨刯avascript紼嬪簭錛屽涓嬬粨鏋滀負page1 鍒╃敤姝e垯琛ㄨ揪寮忛檺鍒剁綉欏佃〃鍗曢噷鐨勬枃鏈杈撳叆鍐呭錛?/p>
鐢ㄦ鍒欒〃杈懼紡闄愬埗鍙兘杈撳叆涓枃錛?/p>
鐢ㄦ鍒欒〃杈懼紡闄愬埗鍙兘杈撳叆鍏ㄨ瀛楃錛?/p>
鐢ㄦ鍒欒〃杈懼紡闄愬埗鍙兘杈撳叆鏁板瓧錛?/p>
鐢ㄦ鍒欒〃杈懼紡闄愬埗鍙兘杈撳叆鏁板瓧鍜岃嫳鏂囷細 鍖歸厤闈炶礋鏁存暟錛堟鏁存暟 + 0錛?/p>
鍖歸厤姝f暣鏁?/p>
鍖歸厤闈炴鏁存暟錛堣礋鏁存暟 + 0錛?/p>
鍖歸厤璐熸暣鏁?/p>
鍖歸厤鏁存暟 鍖歸厤闈炶礋嫻偣鏁幫紙姝f誕鐐規暟 + 0錛?/p>
鍖歸厤姝f誕鐐規暟 鍖歸厤闈炴嫻偣鏁幫紙璐熸誕鐐規暟 + 0錛?/p>
鍖歸厤璐熸誕鐐規暟 鍖歸厤嫻偣鏁?/p>
鍖歸厤鐢?6涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?/p>
鍖歸厤鐢?6涓嫳鏂囧瓧姣嶇殑澶у啓緇勬垚鐨勫瓧絎︿覆 鍖歸厤鐢?6涓嫳鏂囧瓧姣嶇殑灝忓啓緇勬垚鐨勫瓧絎︿覆 鍖歸厤鐢辨暟瀛楀拰26涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?/p>
鍖歸厤鐢辨暟瀛椼?6涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎緇勬垚鐨勫瓧絎︿覆 鍖歸厤email鍦板潃 鍖歸厤url 鍖歸厤html tag Visual Basic & C# Regular Expression [Visual Basic] [C#] 2.娓呯悊杈撳叆瀛楃涓?br />涓嬮潰鐨勪唬鐮佺ず渚嬩嬌鐢ㄩ潤鎬?Regex.Replace 鏂規硶浠庡瓧絎︿覆涓娊鍑烘棤鏁堝瓧絎︺傛偍鍙互浣跨敤榪欓噷瀹氫箟鐨?CleanInput 鏂規硶錛屾竻闄ゆ帀鍦ㄦ帴鍙楃敤鎴瘋緭鍏ョ殑紿椾綋鐨勬枃鏈瓧孌典腑杈撳叆鐨勫彲鑳芥湁瀹崇殑瀛楃銆侰leanInput 鍦ㄦ竻闄ゆ帀闄?@銆?錛堣繛瀛楃錛夊拰 .錛堝彞鐐癸級浠ュ鐨勬墍鏈夐潪瀛楁瘝鏁板瓧瀛楃鍚庤繑鍥炰竴涓瓧絎︿覆銆?/p>
[Visual Basic] [C#] 3.鏇存敼鏃ユ湡鏍煎紡 [Visual Basic] [C#] Regex 鏇挎崲妯″紡 鏈夊嚑縐嶉潤鎬佸嚱鏁頒嬌鎮ㄥ彲浠ュ湪浣跨敤姝e垯琛ㄨ揪寮忔搷浣滄椂鏃犻渶鍒涘緩鏄懼紡姝e垯琛ㄨ揪寮忓璞★紝鑰?Regex.Replace 鍑芥暟姝f槸鍏朵腑涔嬩竴銆傚鏋滄偍涓嶆兂淇濈暀緙栬瘧鐨勬鍒欒〃杈懼紡錛岃繖灝嗙粰鎮ㄥ甫鏉ユ柟渚?/p>
4.鎻愬彇 URL 淇℃伅 [Visual Basic] [C#] 鍙湁瀛楁瘝鍜屾暟瀛楋紝涓嶅皬浜?浣嶏紝涓旀暟瀛楀瓧姣嶉兘鍖呭惈鐨勫瘑鐮佺殑姝e垯琛ㄨ揪寮?br />鍦–#涓紝鍙互鐢ㄨ繖涓潵琛ㄧず錛?/p>
涓涓皢闇瑕佸皢璺緞瀛楃涓叉媶鍒嗕負鏍圭洰褰曞拰瀛愮洰褰曚袱閮ㄥ垎鐨勭畻娉曠▼搴忥紝鑰冭檻璺緞鏍煎紡鏈夛細C:\aa\bb\cc 錛孿\aa\bb\cc 錛?ftp://aa.bb/cc 涓婅堪璺緞灝嗗垎鍒鎷嗗垎涓猴細C:\鍜宎a\bb\cc 錛孿\aa 鍜?\bb\cc 錛?ftp:// 鍜?aa.bb/cc 鐢╦avascript瀹炵幇濡備笅錛?/p>
瀵硅薄灞炴э細澹版槑鏃朵互“this.”寮澶達紝鍙兘琚?#8220;綾葷殑瀹炰緥”鍗沖璞℃墍璋冪敤錛屼笉鑳借“綾誨唴閮紙瀵瑰涓嶅鍐咃級”璋冪敤錛涘叏灞鍙橀噺錛氬0鏄庢椂鐩存帴浠ュ彉閲忓悕寮澶達紝鍙互浠繪剰璋冪敤錛堝鍐呭澶栵級錛涘眬閮ㄥ彉閲忥細鍙兘琚?/p>
//綾?nbsp;
var testClass = function(){
//瀵硅薄灞炴?瀵瑰涓嶅鍐?綾昏皟鐢?
this.age ="25";
//鍏ㄥ眬鍙橀噺(瀵瑰唴瀵瑰)
name="jack";
//灞閮ㄥ彉閲?瀵瑰唴涓嶅澶?
var address = "beijing";
//鍏ㄥ眬鍑芥暟錛堝鍐呭澶栵級
add = function(a,b){
//鍙闂細鍏ㄥ眬鍙橀噺鍜屽眬閮ㄥ彉閲?nbsp;
multiply(a,b);
return a+b;
}
//瀹炰緥鍑芥暟錛堢敱綾葷殑瀵硅薄璋冪敤錛?nbsp;
this.minus = function(a,b){
//鍙互璁塊棶錛氬璞″睘鎬с佸叏灞鍙橀噺鍜屽眬閮ㄥ彉閲?nbsp;
return a-b;
}
//灞閮ㄥ嚱鏁幫紙鍐呴儴鐩存帴璋冪敤錛?nbsp;
var multiply = function(a,b){
//鍙兘璁塊棶錛氬叏灞鍙橀噺鍜屽眬閮ㄥ彉閲?nbsp;
return a*b;
}
}
//綾誨嚱鏁幫紙鐢辯被鍚嶇洿鎺ヨ皟鐢級
testClass.talk= function(){
//鍙兘璁塊棶錛氬叏灞鍙橀噺鍜屽叏灞鍑芥暟
this.what = function(){
alert("What can we talk about?");
about();
}
var about = function(){
alert("about name錛?+name);
alert("about add(1,1):"+add(1,1));
}
}
//鍘熷瀷鍑芥暟(鐢辯被鐨勫璞¤皟鐢?
testClass.prototype.walk = function(){
//鍙兘璁塊棶:鍏ㄥ眬鍙橀噺鍜屽叏灞鍑芥暟
this.where = function(){
alert("Where can we go?");
go();
}
var go = function(){
alert("go name:"+name);
alert("go add(1,1):"+add(1,1));
}
}
</script>
涓嬮潰鐪嬬湅濡備綍璋冪敤:
//鑾峰彇涓涓猚bs綾葷殑瀹炰緥
var cbs= new testClass();
//璋冪敤綾葷殑瀵硅薄灞炴ge
alert("age:"+cbs.age);
//鑾峰彇綾誨嚱鏁皌alk鐨勫疄渚?nbsp;
var talk = new testClass.talk();
//璋冪敤綾誨嚱鏁扮殑瀹炰緥鍑芥暟
talk.what();
//鑾峰彇鍘熷瀷鍑芥暟walk鐨勫疄渚?nbsp;
var walk = new cbs.walk();
//璋冪敤鍘熷瀷鍑芥暟鐨勫疄渚嬪嚱鏁?nbsp;
walk.where();
</script>
]]><filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.util.ClassUtils;
import org.springframework.web.filter.OncePerRequestFilter;
/** 鑷畾涔夌紪鐮佽繃婊ゅ櫒
* @author imxylz (imxylz#gmail.com)
* @sine 2011-6-9
*/
public class MutilCharacterEncodingFilter extends OncePerRequestFilter {
static final Pattern inputPattern = Pattern.compile(".*_input_encode=([\\w-]+).*");
static final Pattern outputPattern = Pattern.compile(".*_output_encode=([\\w-]+).*");
// Determine whether the Servlet 2.4 HttpServletResponse.setCharacterEncoding(String)
// method is available, for use in the "doFilterInternal" implementation.
private final static boolean responseSetCharacterEncodingAvailable = ClassUtils.hasMethod(HttpServletResponse.class,
"setCharacterEncoding", new Class[] { String.class });
private String encoding;
private boolean forceEncoding = false;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
String url = request.getQueryString();
Matcher m = null;
if (url != null && (m = inputPattern.matcher(url)).matches()) {//杈撳叆緙栫爜
String inputEncoding = m.group(1);
request.setCharacterEncoding(inputEncoding);
m = outputPattern.matcher(url);
if (m.matches()) {//杈撳嚭緙栫爜
response.setCharacterEncoding(m.group(1));
} else {
if (this.forceEncoding && responseSetCharacterEncodingAvailable) {
response.setCharacterEncoding(this.encoding);
}
}
} else {
if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) {
request.setCharacterEncoding(this.encoding);
if (this.forceEncoding && responseSetCharacterEncodingAvailable) {
response.setCharacterEncoding(this.encoding);
}
}
}
filterChain.doFilter(request, response);
}
public void setEncoding(String encoding) {
this.encoding = encoding;
}
public void setForceEncoding(boolean forceEncoding) {
this.forceEncoding = forceEncoding;
}
}
]]>
]]>
鍖歸厤涓枃瀛楃鐨勬鍒欒〃杈懼紡錛?/p>
{
聽聽 聽
return
this
.
replace
(
/
(^\s*)|(\s*$)
/g
,
""
)
;
}
涓嬮潰鏄埄鐢ㄦ鍒欒〃杈懼紡鍖歸厤IP鍦板潃錛屽茍灝咺P鍦板潃杞崲鎴愬搴旀暟鍊肩殑Javascript紼嬪簭錛?/p>
{
聽聽 聽
re
=
/
(\d+)\.(\d+)\.(\d+)\.(\d+)
/g
聽
//鍖歸厤IP鍦板潃鐨勬鍒欒〃杈懼紡
聽聽 聽
if
(
re
.
test
(
ip
))
聽聽 聽
{
聽聽 聽 聽 聽
return
RegExp
.$
1
*
Math
.
pow
(
255
,
3
)
)+
RegExp
.$
2
*
Math
.
pow
(
255
,
2
)
)+
RegExp
.$
3
*
255
+
RegExp
.$
4
*
1
聽聽 聽
}
聽聽 聽
else
聽聽 聽
{
聽聽 聽 聽 聽
throw
new
Error
(
"
Not a valid IP address!
"
)
聽聽 聽
}
}
ip
=
ip
.
split
(
"
.
"
)
alert
(
"
IP鍊兼槸錛?/span>
"
+
(
ip
[
0
]
*
255
*
255
*
255
+
ip
[
1
]
*
255
*
255
+
ip
[
2
]
*
255
+
ip
[
3
]
*
1
))
var
s1
=
s
.
replace
(
/
(.).*\1
/g
,
"
$1
"
)
var
re
=
new
RegExp
(
"
[
"
+
s1
+
"
]
"
,
"
g
"
)
var
s2
=
s
.
replace
(
re
,
""
)
alert
(
s1
+
s2
)
聽
//緇撴灉涓猴細abcefgi
濡傛灉var s = 鈥渁bacabefggeeii鈥?br />緇撴灉灝變笉瀵逛簡錛岀粨鏋滀負錛歛beicfgg
姝e垯琛ㄨ揪寮忕殑鑳藉姏鏈夐檺
===============================
s
=
s
.
replace
(
/
(.*
\/
){ 0, }([^\.]+).*
/i
g
,
"
$2
"
)
alert
(
s
)
1.紜鏈夋晥鐢靛瓙閭歡鏍煎紡
涓嬮潰鐨勭ず渚嬩嬌鐢ㄩ潤鎬?Regex.IsMatch 鏂規硶楠岃瘉涓涓瓧絎︿覆鏄惁涓烘湁鏁堢數瀛愰偖浠舵牸寮忋傚鏋滃瓧絎︿覆鍖呭惈涓涓湁鏁堢殑鐢靛瓙閭歡鍦板潃錛屽垯 IsValidEmail 鏂規硶榪斿洖 true錛屽惁鍒欒繑鍥?false錛屼絾涓嶉噰鍙栧叾浠栦換浣曟搷浣溿傛偍鍙互浣跨敤 IsValidEmail錛屽湪搴旂敤紼嬪簭灝嗗湴鍧瀛樺偍鍦ㄦ暟鎹簱涓垨鏄劇ず鍦?ASP.NET 欏典腑涔嬪墠錛岀瓫閫夊嚭鍖呭惈鏃犳晥瀛楃鐨勭數瀛愰偖浠跺湴鍧銆?/p>
' Return true if strIn is in valid e-mail format.
Return Regex.IsMatch(strIn, ("^([\w-\.]+)@((\[[0-9]{ 1,3 }\.[0-9]{ 1,3 }\.[0-9]{ 1,3 }\.)|(([\w-]+\.)+))([a-zA-Z]{ 2,4 }|[0-9]{ 1,3 })(\]?)$")
End Function
{
// Return true if strIn is in valid e-mail format.
return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{ 1,3 }\.[0-9]{ 1,3 }\.[0-9]{ 1,3 }\.)|(([\w-]+\.)+))([a-zA-Z]{ 2,4 }|[0-9]{ 1,3 })(\]?)$");
}
' Replace invalid characters with empty strings.
Return Regex.Replace(strIn, "[^\w\.@-]", "")
End Function
{
聽聽 聽// Replace invalid characters with empty strings.
聽聽 聽return Regex.Replace(strIn, @"[^\w\.@-]", "");
}
浠ヤ笅浠g爜紺轟緥浣跨敤 Regex.Replace 鏂規硶鏉ョ敤 dd-mm-yy 鐨勬棩鏈熷艦寮忎唬鏇?mm/dd/yy 鐨勬棩鏈熷艦寮忋?/p>
Return Regex.Replace(input, _
"\b(?<month>\d{ 1,2 })/(?<day>\d{ 1,2 })/(?<year>\d{ 2,4 })\b", _
"${ day }-${ month }-${ year }")
End Function
{
聽聽 聽return Regex.Replace(input,"\\b(?<month>\\d{ 1,2 })/(?<day>\\d{ 1,2 })/(?<year>\\d{ 2,4 })\\b","${ day }-${ month }-${ year }");
}
鏈ず渚嬭鏄庡浣曞湪 Regex.Replace 鐨勬浛鎹㈡ā寮忎腑浣跨敤鍛藉悕鐨勫弽鍚戝紩鐢ㄣ傚叾涓紝鏇挎崲琛ㄨ揪寮?${ day } 鎻掑叆鐢?(?
浠ヤ笅浠g爜紺轟緥浣跨敤 Match.Result 鏉ヤ粠 URL 鎻愬彇鍗忚鍜岀鍙e彿銆備緥濡傦紝鈥渉ttp://www.penner.cn:8080鈥︹﹀皢榪斿洖鈥渉ttp:8080鈥濄?/p>
Dim r As New Regex("^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/", _
RegexOptions.Compiled)
Return r.Match(url).Result("${ proto }${ port }")
End Function
{
聽聽 聽Regex r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/",
聽聽 聽RegexOptions.Compiled);
聽聽 聽return r.Match(url).Result("${ proto }${ port }");
}
var
regPathParse
=
/
^([^\\^
\/
]+[\\
\/
]+|\\\\[^\\]+)(.*)$
/
if
(
regPathParse
.
test
(
strFolder
))
{
聽聽 聽
strRoot
=
RegExp
.$
1
聽聽 聽
strSub
=
RegExp
.$
2
}
]]>
]]>
鎴栬浣犳兂瑕佸仛鐨勭涓浠朵簨鎯呭氨鏄В鏋愪竴涓煇縐嶇被鍨嬬殑XML鏂囨。錛岀敤dom4j寰堝鏄撳仛鍒般傝鐪嬩笅闈㈢殑紺鴻寖浠g爜錛?/p>
import java.net.URL;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
public class Foo {
public Document parse(URL url) throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(url);
return document;
}
}
浣跨敤榪唬鍣紙Iterators錛?/p>
鎴戜滑鍙互閫氳繃澶氱鏂規硶鏉ユ搷浣淴ML鏂囨。錛岃繖浜涙柟娉曡繑鍥瀓ava閲屾爣鍑嗙殑榪唬鍣紙Iterators錛夈備緥濡傦細
public void bar(Document document) throws DocumentException {
Element root = document.getRootElement();
//榪唬鏍瑰厓绱犱笅闈㈢殑鎵鏈夊瓙鍏冪礌
for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
Element element = (Element) i.next();
//澶勭悊浠g爜
}
//榪唬鏍瑰厓绱犱笅闈㈠悕縐頒負"foo"鐨勫瓙鍏冪礌
for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) {
Element foo = (Element) i.next();
//澶勭悊浠g爜
}
// 榪唬鏍瑰厓绱犵殑灞炴ttributes錛夊厓绱?br />for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
// do something
}
}
寮哄ぇ鐨刋Path瀵艱埅
鍦╠om4j涓璛Path鍙互琛ㄧず鍑哄湪XML鏍戠姸緇撴瀯涓殑Document鎴栬呬換鎰忕殑鑺傜偣錛圢ode錛夛紙渚嬪錛欰ttribute錛孍lement 鎴栬?ProcessingInstruction絳夛級銆傚畠鍙互浣垮湪鏂囨。涓鏉傜殑鎿嶄綔浠呴氳繃涓琛屼唬鐮佸氨鍙互瀹屾垚銆備緥濡傦細
public void bar(Document document) {
List list = document.selectNodes( "http://foo/bar" );
Node node = document.selectSingleNode( "http://foo/bar/author" );
String name = node.valueOf( "@name" );
}
濡傛灉浣犳兂寰楀埌涓涓猉HTML鏂囨。涓殑鎵鏈夎秴鏂囨湰閾炬帴錛坔ypertext links錛変綘鍙互浣跨敤涓嬮潰鐨勪唬鐮侊細
public void findLinks(Document document) throws DocumentException {
List list = document.selectNodes( "http://a/@href" );
for (Iterator iter = list.iterator(); iter.hasNext(); ) {
Attribute attribute = (Attribute) iter.next();
String url = attribute.getValue();
}
}
濡傛灉浣犻渶瑕佸叧浜嶺Path璇█鐨勪換浣曞府鍔╋紝鎴戜滑寮虹儓鎺ㄨ崘榪欎釜绔欑偣Zvon tutorial浠栦細閫氳繃涓涓竴涓殑渚嬪瓙寮曞浣犲涔犮?/p>
蹇熼亶鍘嗭紙Fast Looping錛?/p>
濡傛灉浣犱笉寰椾笉閬嶅巻涓涓潪甯稿ぇ鐨刋ML鏂囨。錛岀劧鍚庢墠鍘繪墽琛岋紝鎴戜滑寤鴻浣犱嬌鐢ㄥ揩閫熼亶鍘嗘柟娉曪紙fast looping method錛夛紝瀹冨彲浠ラ伩鍏嶄負姣忎竴涓驚鐜殑鑺傜偣鍒涘緩涓涓凱浠e櫒瀵硅薄,濡備笅鎵紺猴細
public void treeWalk(Document document) {
treeWalk( document.getRootElement() );
}
public void treeWalk(Element element) {
for ( int i = 0, size = element.nodeCount(); i < size; i++ ) {
Node node = element.node(i);
if ( node instanceof Element ) {
treeWalk( (Element) node );
}
else {
// do something....
}
}
}
鐢熸垚涓涓柊鐨刋ML鏂囨。瀵硅薄
鍦╠om4j涓綘鍙兘甯稿父甯屾湜鐢ㄧ▼搴忕敓鎴愪竴涓猉ML鏂囨。瀵硅薄錛屼笅闈㈢殑紼嬪簭涓轟綘榪涜浜嗙ず鑼冿細
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class Foo {
public Document createDocument() {
Document document = DocumentHelper.createDocument();
Element root = document.addElement( "root" );
Element author1 = root.addElement( "author" )
.addAttribute( "name", "James" )
.addAttribute( "location", "UK" )
.addText( "James Strachan" );
Element author2 = root.addElement( "author" )
.addAttribute( "name", "Bob" )
.addAttribute( "location", "US" )
.addText( "Bob McWhirter" );
return document;
}
}
灝嗕竴涓枃妗e璞″啓鍏ユ枃浠朵腑
灝嗕竴涓枃妗e璞″啓鍏riter瀵硅薄鐨勪竴涓畝鍗曞揩閫熺殑閫斿緞鏄氳繃write()鏂規硶銆?/p>
FileWriter out = new FileWriter( "foo.xml" );
document.write( out );
濡傛灉浣犳兂鏀瑰彉杈撳嚭鏂囦歡鐨勬帓鐗堟牸寮忥紝姣斿浣犳兂瑕佷竴涓紓浜殑鏍煎紡鎴栬呮槸涓涓揣鍑戠殑鏍煎紡錛屾垨鑰呬綘鎯崇敤Writer 瀵硅薄鎴栬匫utputStream 瀵硅薄鏉ユ搷浣滐紝閭d箞浣犲彲浠ヤ嬌鐢╔MLWriter 綾匯?/p>
import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class Foo {
public void write(Document document) throws IOException {
// 鍐欏叆鏂囦歡
XMLWriter writer = new XMLWriter(
new FileWriter( "output.xml" )
);
writer.write( document );
writer.close();
// 浠ヤ竴縐嶄紭闆呯殑鏍煎紡鍐欏叆System.out瀵硅薄
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter( System.out, format );
writer.write( document );
// 浠ヤ竴縐嶇揣鍑戠殑鏍煎紡鍐欏叆System.out瀵硅薄
format = OutputFormat.createCompactFormat();
writer = new XMLWriter( System.out, format );
writer.write( document );
}
}
杞寲涓哄瓧絎︿覆錛屾垨鑰呬粠瀛楃涓茶漿鍖?/p>
濡傛灉浣犳湁涓涓枃妗o紙Document錛夊璞℃垨鑰呬換浣曚竴涓妭鐐癸紙Node錛夊璞$殑寮曠敤錛坮eference錛夛紝璞″睘鎬э紙Attribute錛夋垨鑰呭厓绱狅紙Element錛夛紝浣犲彲浠ラ氳繃asXML()鏂規硶鎶婂畠杞寲涓轟竴涓粯璁ょ殑XML瀛楃涓詫細
Document document = ...;
String text = document.asXML();
濡傛灉浣犳湁涓浜沊ML鍐呭鐨勫瓧絎︿覆琛ㄧず錛屼綘鍙互閫氳繃DocumentHelper.parseText()鏂規硶灝嗗畠閲嶆柊杞寲涓烘枃妗o紙Document錛夊璞★細
String text = "
Document document = DocumentHelper.parseText(text);
閫氳繃XSLT鏍峰紡鍖栨枃妗o紙Document錛?/p>
浣跨敤Sun鍏徃鎻愪緵鐨凧AXP API灝哫SLT 搴旂敤鍒版枃妗o紙Document錛変笂鏄緢綆鍗曠殑銆傚畠鍏佽浣犱嬌鐢ㄤ換浣曠殑XSLT寮曟搸錛堜緥濡傦細Xalan鎴朣AXON絳夛級鏉ュ紑鍙戙備笅闈㈡槸涓涓嬌鐢↗AXP鍒涘緩涓涓漿鍖栧櫒錛坱ransformer錛夛紝鐒跺悗灝嗗畠搴旂敤鍒版枃妗o紙Document錛変笂鐨勪緥瀛愶細
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import org.dom4j.Document;
import org.dom4j.io.DocumentResult;
import org.dom4j.io.DocumentSource;
public class Foo {
public Document styleDocument(
Document document,
String stylesheet
) throws Exception {
// 浣跨敤 JAXP 鍔犺澆杞寲鍣?br />TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(
new StreamSource( stylesheet )
);
// 鐜板湪鏉ユ牱寮忓寲涓涓枃妗o紙Document錛?br />DocumentSource source = new DocumentSource( document );
DocumentResult result = new DocumentResult();
transformer.transform( source, result );
// 榪斿洖緇忚繃鏍峰紡鍖栫殑鏂囨。錛圖ocument錛?br />Document transformedDoc = result.getDocument();
return transformedDoc;
}
}
鍒濇灝濊瘯緲昏瘧錛屽鏋滄湁緲昏瘧涓嶅Ε鐨勫湴鏂癸紝甯屾湜澶у鎸囧嚭鏉ワ紝鎴戜滑鍏卞悓榪涙錛?br />璋㈣阿錛侊紒
[:)]
1錛塂OM(JAXP Crimson瑙f瀽鍣?
DOM鏄敤涓庡鉤鍙板拰璇█鏃犲叧鐨勬柟寮忚〃紺篨ML鏂囨。鐨勫畼鏂筗3C鏍囧噯銆侱OM鏄互灞傛緇撴瀯緇勭粐鐨勮妭鐐規垨淇℃伅鐗囨柇鐨勯泦鍚堛傝繖涓眰嬈$粨鏋勫厑璁稿紑鍙戜漢鍛樺湪鏍戜腑瀵繪壘鐗瑰畾淇℃伅銆傚垎鏋愯緇撴瀯閫氬父闇瑕佸姞杞芥暣涓枃妗e拰鏋勯犲眰嬈$粨鏋勶紝鐒跺悗鎵嶈兘鍋氫換浣曞伐浣溿傜敱浜庡畠鏄熀浜庝俊鎭眰嬈$殑錛屽洜鑰孌OM琚涓烘槸鍩轟簬鏍戞垨鍩轟簬瀵硅薄鐨勩侱OM浠ュ強騫夸箟鐨勫熀浜庢爲鐨勫鐞嗗叿鏈夊嚑涓紭鐐廣傞鍏堬紝鐢變簬鏍戝湪鍐呭瓨涓槸鎸佷箙鐨勶紝鍥犳鍙互淇敼瀹冧互渚垮簲鐢ㄧ▼搴忚兘瀵規暟鎹拰緇撴瀯浣滃嚭鏇存敼銆傚畠榪樺彲浠ュ湪浠諱綍鏃跺欏湪鏍戜腑涓婁笅瀵艱埅錛岃屼笉鏄儚SAX閭f牱鏄竴嬈℃х殑澶勭悊銆侱OM浣跨敤璧鋒潵涔熻綆鍗曞緱澶氥?/p>
2錛塖AX
SAX澶勭悊鐨勪紭鐐歸潪甯哥被浼間簬嫻佸獟浣撶殑浼樼偣銆傚垎鏋愯兘澶熺珛鍗沖紑濮嬶紝鑰屼笉鏄瓑寰呮墍鏈夌殑鏁版嵁琚鐞嗐傝屼笖錛岀敱浜庡簲鐢ㄧ▼搴忓彧鏄湪璇誨彇鏁版嵁鏃舵鏌ユ暟鎹紝鍥犳涓嶉渶瑕佸皢鏁版嵁瀛樺偍鍦ㄥ唴瀛樹腑銆傝繖瀵逛簬澶у瀷鏂囨。鏉ヨ鏄釜宸ㄥぇ鐨勪紭鐐廣備簨瀹炰笂錛屽簲鐢ㄧ▼搴忕敋鑷充笉蹇呰В鏋愭暣涓枃妗o紱瀹冨彲浠ュ湪鏌愪釜鏉′歡寰楀埌婊¤凍鏃跺仠姝㈣В鏋愩備竴鑸潵璇達紝SAX榪樻瘮瀹冪殑鏇夸唬鑰匘OM蹇澶氥?
銆銆閫夋嫨DOM榪樻槸閫夋嫨SAX錛?瀵逛簬闇瑕佽嚜宸辯紪鍐欎唬鐮佹潵澶勭悊XML鏂囨。鐨勫紑鍙戜漢鍛樻潵璇達紝 閫夋嫨DOM榪樻槸SAX瑙f瀽妯″瀷鏄竴涓潪甯擱噸瑕佺殑璁捐鍐崇瓥銆?DOM閲囩敤寤虹珛鏍戝艦緇撴瀯鐨勬柟寮忚闂甔ML鏂囨。錛岃孲AX閲囩敤鐨勪簨浠舵ā鍨嬨?
銆銆DOM瑙f瀽鍣ㄦ妸XML鏂囨。杞寲涓轟竴涓寘鍚叾鍐呭鐨勬爲錛屽茍鍙互瀵規爲榪涜閬嶅巻銆傜敤DOM瑙f瀽妯″瀷鐨勪紭鐐規槸緙栫▼瀹規槗錛屽紑鍙戜漢鍛樺彧闇瑕佽皟鐢ㄥ緩鏍戠殑鎸囦護錛岀劧鍚庡埄鐢╪avigation APIs璁塊棶鎵闇鐨勬爲鑺傜偣鏉ュ畬鎴愪換鍔°傚彲浠ュ緢瀹規槗鐨勬坊鍔犲拰淇敼鏍戜腑鐨勫厓绱犮傜劧鑰岀敱浜庝嬌鐢―OM瑙f瀽鍣ㄧ殑鏃跺欓渶瑕佸鐞嗘暣涓猉ML鏂囨。錛屾墍浠ュ鎬ц兘鍜屽唴瀛樼殑瑕佹眰姣旇緝楂橈紝灝ゅ叾鏄亣鍒板緢澶х殑XML鏂囦歡鐨勬椂鍊欍傜敱浜庡畠鐨勯亶鍘嗚兘鍔涳紝DOM瑙f瀽鍣ㄥ父鐢ㄤ簬XML鏂囨。闇瑕侀綣佺殑鏀瑰彉鐨勬湇鍔′腑銆?
銆銆SAX瑙f瀽鍣ㄩ噰鐢ㄤ簡鍩轟簬浜嬩歡鐨勬ā鍨嬶紝瀹冨湪瑙f瀽XML鏂囨。鐨勬椂鍊欏彲浠ヨЕ鍙戜竴緋誨垪鐨勪簨浠訛紝褰撳彂鐜扮粰瀹氱殑tag鐨勬椂鍊欙紝瀹冨彲浠ユ縺媧諱竴涓洖璋冩柟娉曪紝鍛婅瘔璇ユ柟娉曞埗瀹氱殑鏍囩宸茬粡鎵懼埌銆係AX瀵瑰唴瀛樼殑瑕佹眰閫氬父浼氭瘮杈冧綆錛屽洜涓哄畠璁╁紑鍙戜漢鍛樿嚜宸辨潵鍐沖畾鎵瑕佸鐞嗙殑tag銆傜壒鍒槸褰撳紑鍙戜漢鍛樺彧闇瑕佸鐞嗘枃妗d腑鎵鍖呭惈鐨勯儴鍒嗘暟鎹椂錛孲AX榪欑鎵╁睍鑳藉姏寰楀埌浜嗘洿濂界殑浣撶幇銆備絾鐢⊿AX瑙f瀽鍣ㄧ殑鏃跺欑紪鐮佸伐浣滀細姣旇緝鍥伴毦錛岃屼笖寰堥毦鍚屾椂璁塊棶鍚屼竴涓枃妗d腑鐨勫澶勪笉鍚屾暟鎹?
3錛塉DOM http://www.jdom.org
JDOM鐨勭洰鐨勬槸鎴愪負Java鐗瑰畾鏂囨。妯″瀷錛屽畠綆鍖栦笌XML鐨勪氦浜掑茍涓旀瘮浣跨敤DOM瀹炵幇鏇村揩銆傜敱浜庢槸絎竴涓狫ava鐗瑰畾妯″瀷錛孞DOM涓鐩村緱鍒板ぇ鍔?a class="Channel_KeyLink" >鎺ㄥ箍鍜屼績榪涖傛鍦ㄨ冭檻閫氳繃“Java瑙勮寖璇鋒眰JSR-102”灝嗗畠鏈緇堢敤浣?#8220;Java鏍囧噯鎵╁睍”銆備粠2000騫村垵灝卞凡緇忓紑濮嬩簡JDOM寮鍙戙?
銆銆JDOM涓嶥OM涓昏鏈変袱鏂歸潰涓嶅悓銆傞鍏堬紝JDOM浠呬嬌鐢ㄥ叿浣撶被鑰屼笉浣跨敤鎺ュ彛銆傝繖鍦ㄦ煇浜涙柟闈㈢畝鍖栦簡API錛屼絾鏄篃闄愬埗浜嗙伒媧繪с傜浜岋紝API澶ч噺浣跨敤浜咰ollections綾伙紝綆鍖栦簡閭d簺宸茬粡鐔熸倝榪欎簺綾葷殑Java寮鍙戣呯殑浣跨敤銆?
銆銆JDOM鏂囨。澹版槑鍏剁洰鐨勬槸“浣跨敤20%(鎴栨洿灝?鐨勭簿鍔涜В鍐?0%(鎴栨洿澶?Java/XML闂”(鏍規嵁瀛︿範鏇茬嚎鍋囧畾涓?0%)銆侸DOM瀵逛簬澶у鏁癑ava/XML搴旂敤紼嬪簭鏉ヨ褰撶劧鏄湁鐢ㄧ殑錛屽茍涓斿ぇ澶氭暟寮鍙戣呭彂鐜癆PI姣擠OM瀹規槗鐞嗚В寰楀銆侸DOM榪樺寘鎷紼嬪簭琛屼負鐨勭浉褰撳箍娉涙鏌ヤ互闃叉鐢ㄦ埛鍋氫換浣曞湪XML涓棤鎰忎箟鐨勪簨銆傜劧鑰岋紝瀹冧粛闇瑕佹偍鍏呭垎鐞嗚ВXML浠ヤ究鍋氫竴浜涜秴鍑哄熀鏈殑宸ヤ綔(鎴栬呯敋鑷崇悊瑙f煇浜涙儏鍐典笅鐨勯敊璇?銆傝繖涔熻鏄瘮瀛︿範DOM鎴朖DOM鎺ュ彛閮芥洿鏈夋剰涔夌殑宸ヤ綔銆?
銆銆JDOM鑷韓涓嶅寘鍚В鏋愬櫒銆傚畠閫氬父浣跨敤SAX2瑙f瀽鍣ㄦ潵瑙f瀽鍜岄獙璇佽緭鍏ML鏂囨。(灝界瀹冭繕鍙互灝嗕互鍓嶆瀯閫犵殑DOM琛ㄧず浣滀負杈撳叆)銆傚畠鍖呭惈涓浜涜漿鎹㈠櫒浠ュ皢JDOM琛ㄧず杈撳嚭鎴怱AX2浜嬩歡嫻併丏OM妯″瀷鎴朮ML鏂囨湰鏂囨。銆侸DOM鏄湪Apache璁稿彲璇佸彉浣撲笅鍙戝竷鐨勫紑鏀?a class="Channel_KeyLink" >婧愮爜銆?/p>
4錛塂OM4J http://dom4j.sourceforge.net
铏界劧DOM4J浠h〃浜嗗畬鍏ㄧ嫭绔嬬殑寮鍙戠粨鏋滐紝浣嗘渶鍒濓紝瀹冩槸JDOM鐨勪竴縐嶆櫤鑳藉垎鏀傚畠鍚堝茍浜嗚澶氳秴鍑哄熀鏈琗ML鏂囨。琛ㄧず鐨勫姛鑳斤紝鍖呮嫭闆嗘垚鐨刋Path鏀寔銆乆ML Schema鏀寔浠ュ強鐢ㄤ簬澶ф枃妗f垨嫻佸寲鏂囨。鐨勫熀浜庝簨浠剁殑澶勭悊銆傚畠榪樻彁渚涗簡鏋勫緩鏂囨。琛ㄧず鐨勯夐」錛屽畠閫氳繃DOM4J API鍜屾爣鍑咲OM鎺ュ彛鍏鋒湁騫惰璁塊棶鍔熻兘銆備粠2000涓嬪崐騫村紑濮嬶紝瀹冨氨涓鐩村浜庡紑鍙戜箣涓?
銆銆涓烘敮鎸佹墍鏈夎繖浜涘姛鑳斤紝DOM4J浣跨敤鎺ュ彛鍜屾娊璞″熀鏈被鏂規硶銆侱OM4J澶ч噺浣跨敤浜咥PI涓殑Collections綾伙紝浣嗘槸鍦ㄨ澶氭儏鍐典笅錛屽畠榪樻彁渚涗竴浜涙浛浠f柟娉曚互鍏佽鏇村ソ鐨勬ц兘鎴栨洿鐩存帴鐨勭紪鐮佹柟娉曘傜洿鎺ュソ澶勬槸錛岃櫧鐒禗OM4J浠樺嚭浜嗘洿澶嶆潅鐨凙PI鐨勪唬浠鳳紝浣嗘槸瀹冩彁渚涗簡姣擩DOM澶у緱澶氱殑鐏墊椿鎬с?
銆銆鍦ㄦ坊鍔犵伒媧繪с乆Path闆嗘垚鍜屽澶ф枃妗e鐞嗙殑鐩爣鏃訛紝DOM4J鐨勭洰鏍囦笌JDOM鏄竴鏍風殑錛氶拡瀵笿ava寮鍙戣呯殑鏄撶敤鎬у拰鐩磋鎿嶄綔銆傚畠榪樿嚧鍔涗簬鎴愪負姣擩DOM鏇村畬鏁寸殑瑙e喅鏂規錛屽疄鐜板湪鏈川涓婂鐞嗘墍鏈塉ava/XML闂鐨勭洰鏍囥傚湪瀹屾垚璇ョ洰鏍囨椂錛屽畠姣擩DOM鏇村皯寮鴻皟闃叉涓嶆紜殑搴旂敤紼嬪簭琛屼負銆?
銆銆DOM4J鏄竴涓潪甯擱潪甯鎬紭縐鐨凧ava XML API錛屽叿鏈夋ц兘浼樺紓銆佸姛鑳藉己澶у拰鏋佺鏄撶敤浣跨敤鐨勭壒鐐癸紝鍚屾椂瀹冧篃鏄竴涓紑鏀炬簮浠g爜鐨?a class="Channel_KeyLink" >杞歡銆傚浠婁綘鍙互鐪嬪埌瓚婃潵瓚婂鐨凧ava杞歡閮藉湪浣跨敤DOM4J鏉ヨ鍐橷ML錛岀壒鍒煎緱涓鎻愮殑鏄繛Sun鐨凧AXM涔熷湪鐢―OM4J銆?
2.. 姣旇緝
1錛塂OM4J鎬ц兘鏈濂斤紝榪濻un鐨凧AXM涔熷湪鐢―OM4J銆傜洰鍓嶈澶氬紑婧愰」鐩腑澶ч噺閲囩敤DOM4J錛屼緥濡傚ぇ鍚嶉紟榧庣殑Hibernate涔熺敤DOM4J鏉ヨ鍙朮ML閰嶇疆鏂囦歡銆傚鏋滀笉鑰冭檻鍙Щ妞嶆э紝閭e氨閲囩敤DOM4J.
2錛塉DOM鍜孌OM鍦ㄦц兘嫻嬭瘯鏃惰〃鐜頒笉浣籌紝鍦ㄦ祴璇?0M鏂囨。鏃跺唴瀛樻孩鍑恒傚湪灝忔枃妗f儏鍐典笅榪樺煎緱鑰冭檻浣跨敤DOM鍜孞DOM銆傝櫧鐒禞DOM鐨勫紑鍙戣呭凡緇忚鏄庝粬浠湡鏈涘湪姝e紡鍙戣鐗堝墠涓撴敞鎬ц兘闂錛屼絾鏄粠鎬ц兘瑙傜偣鏉ョ湅錛屽畠紜疄娌℃湁鍊煎緱鎺ㄨ崘涔嬪銆傚彟澶栵紝DOM浠嶆槸涓涓潪甯稿ソ鐨勯夋嫨銆侱OM瀹炵幇騫挎硾搴旂敤浜庡縐嶇紪紼嬭璦銆傚畠榪樻槸璁稿鍏跺畠涓嶺ML鐩稿叧鐨勬爣鍑嗙殑鍩虹錛屽洜涓哄畠姝e紡鑾峰緱W3C鎺ㄨ崘(涓庡熀浜庨潪鏍囧噯鐨凧ava妯″瀷鐩稿)錛屾墍浠ュ湪鏌愪簺綾誨瀷鐨勯」鐩腑鍙兘涔熼渶瑕佸畠(濡傚湪JavaScript涓嬌鐢―OM)銆?/p>
3錛塖AX琛ㄧ幇杈冨ソ錛岃繖瑕佷緷璧栦簬瀹冪壒瀹氱殑瑙f瀽鏂瑰紡錛嶄簨浠墮┍鍔ㄣ備竴涓猄AX媯嫻嬪嵆灝嗗埌鏉ョ殑XML嫻侊紝浣嗗茍娌℃湁杞藉叆鍒板唴瀛?褰撶劧褰揦ML嫻佽璇誨叆鏃訛紝浼氭湁閮ㄥ垎鏂囨。鏆傛椂闅愯棌鍦ㄥ唴瀛樹腑)銆?/p>
3. 鍥涚xml鎿嶄綔鏂瑰紡鐨勫熀鏈嬌鐢ㄦ柟娉?/p>
xml鏂囦歡錛?/p>
錛?xml version="1.0" encoding="GB2312"?錛?br />錛淩ESULT錛?br /> 錛淰ALUE錛?
銆銆 錛淣O錛濧1234錛?NO錛?
銆銆 錛淎DDR錛炲洓宸濈渷XX鍘縓X闀嘪X璺疿孌礨X鍙鳳紲/ADDR錛?br /> 錛?VALUE錛?br /> 錛淰ALUE錛?
銆銆 錛淣O錛濨1234錛?NO錛?
銆 銆錛淎DDR錛炲洓宸濈渷XX甯俋X涔X鏉慩X緇勶紲/ADDR錛?br /> 錛?VALUE錛?br />錛?RESULT錛?
1錛塂OM
import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class MyXMLReader{
銆public static void main(String arge[]){
銆銆long lasting =System.currentTimeMillis();
銆銆try{
銆銆銆File f=new File("data_10k.xml");
銆銆銆DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
銆銆銆DocumentBuilder builder=factory.newDocumentBuilder();
銆銆銆Document doc = builder.parse(f);
銆銆銆NodeList nl = doc.getElementsByTagName("VALUE");
銆銆銆for (int i=0;i錛渘l.getLength();i++){
銆銆銆銆System.out.print("杞︾墝鍙風爜:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue());
銆銆銆銆System.out.println("杞︿富鍦板潃:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue());
銆 銆}
銆銆}catch(Exception e){
銆銆銆e.printStackTrace();
}
2錛塖AX
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
public class MyXMLReader extends DefaultHandler {
銆java.util.Stack tags = new java.util.Stack();
銆public MyXMLReader() {
銆銆super();
}
銆public static void main(String args[]) {
銆銆long lasting = System.currentTimeMillis();
銆銆try {
銆銆銆SAXParserFactory sf = SAXParserFactory.newInstance();
銆銆銆SAXParser sp = sf.newSAXParser();
銆銆銆MyXMLReader reader = new MyXMLReader();
銆銆銆sp.parse(new InputSource("data_10k.xml"), reader);
銆銆} catch (Exception e) {
銆銆銆e.printStackTrace();
銆銆}
銆銆System.out.println("榪愯鏃墮棿錛? + (System.currentTimeMillis() - lasting) + "姣");}
銆銆public void characters(char ch[], int start, int length) throws SAXException {
銆銆String tag = (String) tags.peek();
銆銆if (tag.equals("NO")) {
銆銆銆System.out.print("杞︾墝鍙風爜錛? + new String(ch, start, length));
}
if (tag.equals("ADDR")) {
銆銆System.out.println("鍦板潃:" + new String(ch, start, length));
}
}
銆銆public void startElement(String uri,String localName,String qName,Attributes attrs) {
銆銆tags.push(qName);}
}
3錛?JDOM
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
public class MyXMLReader {
銆public static void main(String arge[]) {
銆銆long lasting = System.currentTimeMillis();
銆銆try {
銆銆銆SAXBuilder builder = new SAXBuilder();
銆銆銆Document doc = builder.build(new File("data_10k.xml"));
銆銆銆Element foo = doc.getRootElement();
銆銆銆List allChildren = foo.getChildren();
銆銆銆for(int i=0;i錛渁llChildren.size();i++) {
銆銆銆銆System.out.print("杞︾墝鍙風爜:" + ((Element)allChildren.get(i)).getChild("NO").getText());
銆銆銆銆System.out.println("杞︿富鍦板潃:" + ((Element)allChildren.get(i)).getChild("ADDR").getText());
銆銆銆}
銆銆} catch (Exception e) {
銆銆銆e.printStackTrace();
}
}
4錛塂OM4J
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
public class MyXMLReader {
銆public static void main(String arge[]) {
銆銆long lasting = System.currentTimeMillis();
銆銆try {
銆銆銆File f = new File("data_10k.xml");
銆銆銆SAXReader reader = new SAXReader();
銆銆銆Document doc = reader.read(f);
銆銆銆Element root = doc.getRootElement();
銆銆銆Element foo;
銆銆銆for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {
銆銆銆銆foo = (Element) i.next();
銆銆銆銆System.out.print("杞︾墝鍙風爜:" + foo.elementText("NO"));
銆銆銆銆System.out.println("杞︿富鍦板潃:" + foo.elementText("ADDR"));
銆銆銆}
銆銆} catch (Exception e) {
銆銆銆e.printStackTrace();
}
}
杞嚜錛?a >http://blog.dl.net.cn/xd/3/archives/2005/15.html
1.鏂囨。瀵硅薄妯″瀷錛圖OM錛?br />DOM鏄疕TML鍜孹ML鏂囨。鐨勭紪紼嬪熀紜錛屽畠瀹氫箟浜嗗鐞嗘墽琛屾枃妗g殑閫斿緞銆?
緙栫▼鑰呭彲浠ヤ嬌鐢―OM澧炲姞鏂囨。銆佸畾浣嶆枃妗g粨鏋勩佸~鍔犱慨鏀瑰垹闄ゆ枃妗e厓绱犮俉3C鐨勯噸瑕佺洰鏍囨槸鎶婂埄鐢―OM鎻愪緵涓涓嬌鐢ㄤ簬澶氫釜騫沖彴鐨勭紪紼嬫帴鍙c俉3C DOM琚璁℃垚閫傚悎澶氫釜騫沖彴錛屽彲浣跨敤浠繪剰緙栫▼璇█瀹炵幇鐨勬柟娉曘?br />2.鑺傜偣鎺ュ彛鎴戠殑xml鏂囦歡Login.xml濡備笅.
<?xml聽version="1.0"聽encoding="utf-8"聽?>
<Login>
聽聽聽聽<Character>
聽聽聽聽聽聽聽聽<C聽Text="鐑"聽Value="0"></C>
聽聽聽聽聽聽聽聽<C聽Text="寮辨皵"聽Value="1"></C>
聽聽聽聽聽聽聽聽<C聽Text="嬋鎯?聽Value="2"></C>
聽聽聽聽聽聽聽聽<C聽Text="鍐烽潤"聽Value="3"></C>
聽聽聽聽聽聽聽聽<C聽Text="鍐烽叿"聽Value="4"></C>
聽聽聽聽</Character>
聽聽聽聽<Weapon>
聽聽聽聽聽聽聽聽<W聽Text="鍏夋潫鍓?聽Value="0"></W>
聽聽聽聽聽聽聽聽<W聽Text="鍏夋潫閰嶅垁"聽Value="1"></W>
聽聽聽聽</Weapon>
聽聽聽聽<EconomyProperty>
聽聽聽聽聽聽聽聽<P聽Text="騫沖潎鍨?聽Value="0"></P>
聽聽聽聽聽聽聽聽<P聽Text="閲嶈鏀誨嚮"聽Value="1"></P>
聽聽聽聽聽聽聽聽<P聽Text="閲嶈鏁忔嵎"聽Value="2"></P>
聽聽聽聽聽聽聽聽<P聽Text="閲嶈闃插盡"聽Value="3"></P>
聽聽聽聽聽聽聽聽<P聽Text="閲嶈鍛戒腑"聽Value="4"></P>
聽聽聽聽</EconomyProperty>
</Login>
鐜板湪鎴戦渶瑕佸榪欎釜xml鏂囦歡鐨勫唴瀹硅繘琛屾搷浣?
棣栧厛,鎴戜滑闇瑕佸姞杞借繖涓獂ml鏂囦歡,js涓姞杞絰ml鏂囦歡,鏄氳繃XMLDOM鏉ヨ繘琛岀殑.
//聽鍔犺澆xml鏂囨。
loadXML聽聽聽聽=聽function(xmlFile)
{
聽聽聽聽var聽xmlDoc;
聽聽聽聽if(window.ActiveXObject)
聽聽聽聽{
聽聽聽聽聽聽聽聽xmlDoc聽聽聽聽=聽new聽ActiveXObject(鈥橫icrosoft.XMLDOM鈥?;
聽聽聽聽聽聽聽聽xmlDoc.async聽聽聽聽=聽false;
聽聽聽聽聽聽聽聽xmlDoc.load(xmlFile);
聽聽聽聽}
聽聽聽聽else聽if聽(document.implementation&&document.implementation.createDocument)
聽聽聽聽{
聽聽聽聽聽聽聽聽xmlDoc聽聽聽聽=聽document.implementation.createDocument(鈥欌?聽鈥欌?聽null);
聽聽聽聽聽聽聽聽xmlDoc.load(xmlFile);
聽聽聽聽}
聽聽聽聽else
聽聽聽聽{
聽聽聽聽聽聽聽聽return聽null;
聽聽聽聽}
聽聽聽聽
聽聽聽聽return聽xmlDoc;
}
xml鏂囦歡瀵硅薄鍑烘潵浜?聽鎺ヤ笅鍘繪垜灝辮瀵硅繖涓枃妗h繘琛屾搷浣滀簡.
姣斿璇?鎴戜滑鐜板湪闇瑕佸緱鍒拌妭鐐筁ogin/Weapon/W鐨勭涓涓妭鐐圭殑灞炴?閭d箞鎴戜滑鍙互濡備笅榪涜.
鏈枃鐢?鐐瑰嚮璁捐 http://www.djasp.Net銆鏀墮泦鏁寸悊銆傝阿緇濇棤鑱婁箣浜鴻漿杞斤紒
//聽棣栧厛瀵箈ml瀵硅薄榪涜鍒ゆ柇
checkXMLDocObj聽聽聽聽=聽function(xmlFile)
{
聽聽聽聽var聽xmlDoc聽聽聽聽=聽loadXML(xmlFile);
聽聽聽聽if(xmlDoc==null)
聽聽聽聽{
聽聽聽聽聽聽聽聽alert(鈥欐偍鐨勬祻瑙堝櫒涓嶆敮鎸亁ml鏂囦歡璇誨彇,浜庢槸鏈〉闈㈢姝㈡偍鐨勬搷浣?鎺ㄨ崘浣跨敤IE5.0浠ヤ笂鍙互瑙e喅姝ら棶棰?鈥?;
聽聽聽聽聽聽聽聽window.location.href=鈥?Index.aspx鈥?
聽聽聽聽}
聽聽聽聽
聽聽聽聽return聽xmlDoc;
}
鈽呯偣鍑昏璁♀槄 http://www.djasp.Net銆鍏ㄥ姏鎵撻燱EB鎶鏈珯鐐癸紝嬈㈣繋澶у璁塊棶錛?/span>
//聽鐒跺悗寮濮嬭幏鍙栭渶瑕佺殑Login/Weapon/W鐨勭涓涓妭鐐圭殑灞炴у?
var聽xmlDoc聽聽聽聽=聽checkXMLDocObj(鈥?EBS/XML/Login.xml鈥?;
var聽v聽聽聽聽=聽xmlDoc.getElementsByTagName(鈥橪ogin/Weapon/W鈥?[0].childNodes.getAttribute(鈥橳ext鈥?
鑰屾垜鍦ㄦ垜鐨勭▼搴忎腑鐨勫啓娉曟槸榪欐牱瀛愮殑,褰撶劧鎴戝湪紼嬪簭涓殑鍐欐硶鏄凡緇忓簲鐢ㄥ埌瀹為檯涓殑浜?涓騫剁粰鍑烘潵,浠ヤ緵鏌ョ湅
鏈枃鐢?鈽呯偣鍑昏璁♀槄 http://www.djasp.Net銆鏀墮泦鏁寸悊銆傝阿緇濇棤鑱婁箣浜鴻漿杞斤紒
initializeSelect聽聽聽聽=聽function(oid,聽xPath)
{
聽聽聽聽var聽xmlDoc聽聽聽聽=聽checkXMLDocObj(鈥?EBS/XML/Login.xml鈥?;
聽聽聽聽var聽n;
聽聽聽聽var聽l;
聽聽聽聽var聽e聽聽聽聽=聽$(oid);
聽聽聽聽if(e!=null)
聽聽聽聽{
聽聽聽聽聽聽聽聽n聽聽聽聽=聽xmlDoc.getElementsByTagName(xPath)[0].childNodes;
聽聽聽聽聽聽聽聽l聽聽聽聽=聽n.length;
聽聽聽聽聽聽聽聽for(var聽i=0;聽i<l;聽i++)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽var聽option聽聽聽聽=聽document.createElement(鈥檕ption鈥?;
聽聽聽聽聽聽聽聽聽聽聽聽option.value聽聽聽聽=聽n[i].getAttribute(鈥橵alue鈥?;
聽聽聽聽聽聽聽聽聽聽聽聽option.innerHTML聽聽聽聽=聽n[i].getAttribute(鈥橳ext鈥?;
聽聽聽聽聽聽聽聽聽聽聽聽e.appendChild(option);
聽聽聽聽聽聽聽聽}
聽聽聽聽}
}
涓婇潰鐨勮闂唬鐮佷腑,鎴戜滑鏄氳繃xmlDoc.getElementsByTagName(xPath)鏉ヨ繘琛岀殑.
榪樺彲浠ラ氳繃xmlDoc.documentElement.childNodes(1)..childNodes(0).getAttribute(鈥橳ext鈥?榪涜璁塊棶.
涓浜涘父鐢ㄦ柟娉?
xmlDoc.documentElement.childNodes(0).nodeName,鍙互寰楀埌榪欎釜鑺傜偣鐨勫悕縐?
xmlDoc.documentElement.childNodes(0).nodeValue,鍙互寰楀埌榪欎釜鑺傜偣鐨勫?聽榪欎釜鍊兼槸鏉ヨ嚜浜庤繖鏍峰瓙鐨剎ml鏍煎紡:<a>b</b>,聽浜庢槸鍙互寰楀埌b榪欎釜鍊?
xmlDoc.documentElement.childNodes(0).hasChild,鍙互鍒ゆ柇鏄惁鏈夊瓙鑺傜偣
鐩楃増瀹冧漢緗戠珯鐨勫唴瀹瑰彲鑰伙紝鎮ㄦ煡鐪嬬殑鍐呭鏉ユ簮浜庘槄鐐瑰嚮璁捐鈽厀ww.djasp.Net
鏍規嵁鎴戠殑緇忛獙,鏈濂芥槸浣跨敤getElementsByTagName(xPath)鐨勬柟娉曞鑺傜偣榪涜璁塊棶,鍥犱負榪欐牱瀛愬彲浠ョ洿鎺ラ氳繃xPath鏉ュ畾浣嶈妭鐐?榪欐牱瀛愪細鏈夋洿濂界殑鎬ц兘.
To read and update - create and manipulate - an XML document, you will need an XML parser.
Microsoft's XML parser is a COM component that comes with Internet Explorer 5 and higher. Once you have installed Internet Explorer, the parser is available to scripts.
Microsoft's XML parser supports all the necessary functions to traverse the node tree, access the nodes and their attribute values, insert and delete nodes, and convert the node tree back to XML.
The following table lists the most commonly used node types supported by Microsoft's XML parser:
Node Type | Example |
---|---|
Processing instruction | <?xml version="1.0"?> |
Element | <drink type="beer">Carlsberg</drink> |
Attribute | type="beer" |
Text | Carlsberg |
MSXML Parser 2.5 is the XML parser that is shipped with Windows 2000 and IE 5.5.
MSXML Parser 3.0 is the XML parser that is shipped with IE 6.0 and Windows XP.
The MSXML 3.0 parser features:
To create an instance of Microsoft's XML parser with JavaScript, use the following code:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM") |
To create an instance of Microsoft's XML parser with VBScript, use the following code:
set xmlDoc=CreateObject("Microsoft.XMLDOM") |
To create an instance of Microsoft's XML parser in an ASP page (using VBScript), use the following code:
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM") |
The following code loads an existing XML document ("note.xml") into Microsoft's XML parser:
<script type="text/javascript"> var xmlDoc=new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("note.xml") ... ... ... </script> |
The first line of the script above creates an instance of the Microsoft XML parser. The third line tells the parser to load an XML document called "note.xml". The second line turns off asynchronized loading, to make sure that the parser will not continue execution of the script before the document is fully loaded.
Plain XML documents are displayed in a tree-like structure in Mozilla (just like IE).
Mozilla also supports parsing of XML data using JavaScript. The parsed data can be displayed as HTML.
To create an instance of the XML parser with JavaScript in Mozilla browsers, use the following code:
var xmlDoc=document.implementation.createDocument("ns","root",null) |
The first parameter, ns, defines the namespace used for the XML document. The second parameter, root, is the XML root element in the XML file. The third parameter, null, is always null because it is not implemented yet.
The following code loads an existing XML document ("note.xml") into Mozillas' XML parser:
<script type="text/javascript"> var xmlDoc=document.implementation.createDocument("","",null); xmlDoc.load("note.xml"); ... ... ... </script> |
The first line of the script above creates an instance of the XML parser. The second line tells the parser to load an XML document called "note.xml".
The following example is a cross browser example that loads an existing XML document ("note.xml") into the XML parser:
<html> <head> <script type="text/javascript"> var xmlDoc function loadXML() { //load xml file // code for IE if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load("note.xml"); getmessage() } // code for Mozilla, etc. else if (document.implementation && document.implementation.createDocument) { xmlDoc= document.implementation.createDocument("","",null); xmlDoc.load("note.xml"); xmlDoc.onload=getmessage } else { alert('Your browser cannot handle this script'); } } function getmessage() { document.getElementById("to").innerHTML= xmlDoc.getElementsByTagName("to")[0].firstChild.nodeValue document.getElementById("from").innerHTML= xmlDoc.getElementsByTagName("from")[0].firstChild.nodeValue document.getElementById("message").innerHTML= xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue } </script> </head> <body onload="loadXML()" bgcolor="yellow"> <h1>W3Schools Internal Note</h1> <p><b>To:</b> <span id="to"></span><br /> <b>From:</b> <span id="from"></span> <hr /> <b>Message:</b> <span id="message"></span> </p> </body> </html> |
Try it yourself
Internet Explorer supports two ways of loading XML into a document object: the load() method and the loadXML() method. The load() method loads an XML file and the loadXML() method loads a text string that contains XML code.
The following code loads a text string into Microsoft's XML parser:
<script type="text/javascript"> var txt="<note>" txt=txt+"<to>Tove</to><from>Jani</from>" txt=txt+"<heading>Reminder</heading>" txt=txt+"<body>Don't forget me this weekend!</body>" txt=txt+"</note>" var xmlDoc=new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.loadXML(txt) ... ... ... </script> |
If you have Internet Explorer, you can try it yourself.
聽聽聽聽聽聽Map BuffaloContext.getContext.getSession()
聽聽聽聽聽聽Map BuffaloContext.getContext.getApplication()
聽聽聽聽聽聽Map BuffaloContext.getContext.getCookie()
榪戞棩瀛︿範浜嗕竴涓婣JAX錛岀収鍋氫簡鍑犱釜渚嬪瓙錛屾劅瑙夋瘮杈冩柊濂囥?/p>
絎竴涓氨鏄嚜鍔ㄥ畬鎴愮殑鍔熻兘鍗矨utocomplete,鍏蜂綋鐨勪緥瀛愬彲浠ュ湪榪欓噷鐪嬶細http://www.b2c-battery.co.uk
鍦⊿earch妗嗗唴杈撳叆涓涓駭鍝佸瀷鍙鳳紝灝卞彲浠ョ湅瑙佹晥鏋滀簡銆?/p>
榪欓噷鐢ㄥ埌浜嗕竴涓紑婧愮殑浠g爜錛?a >AutoAssist 錛屾湁鍏磋叮鐨勫彲浠ョ湅涓涓嬨?/p>
浠ヤ笅涓轟唬鐮佺墖鏂細
index.htm
<script type="text/javascript" src="javascripts/prototype.js"></script>
<script type="text/javascript" src="javascripts/autoassist.js"></script>
<link rel="stylesheet" type="text/css" href="styles/autoassist.css"/>
<div>
<input type="text" name="keyword" id="keyword"/>
<script type="text/javascript">
Event.observe(window, "load", function() {
聽var aa = new AutoAssist("keyword", function() {
聽聽return "forCSV.php?q=" + this.txtBox.value;
聽});
});
</script>
</div>
涓嶇煡閬撲負浠涔堜笉鑳界敤keywords鍋氭枃鏈鐨勫悕瀛楋紝鎴戣瘯浜嗗緢涔咃紝鍚庢潵榪樻槸鐢╧eyword,鎼炲緱榪樿淇敼鍘熶唬鐮併?/p>
forCSV.php
<?php
聽 $keyword = $_GET['q'];
聽 $count = 0;
聽 $handle = fopen("products.csv", "r");
聽 while (($data = fgetcsv($handle, 1000)) !== FALSE) {
聽聽聽 if (preg_match("/$keyword/i", $data[0])) {
聽聽聽聽聽 if ($count++ > 10) { break; }
?>
聽聽聽聽聽 <div onSelect="this.txtBox.value='<?php echo $data[0]; ?>';">
聽聽聽聽聽聽聽 <?php echo $data[0]; ?>
聽聽聽聽聽 </div>
<?php
聽聽聽 }
聽 }
聽 fclose($handle);
聽 if ($count == 0) {
?>
聽 : (, nothing found.
<?php
聽 }
?>
鍘熸潵鐨勪緥瀛愪腑鐨凜SV鏂囦歡鏄牴鎹甛t鏉ュ垎闅旂殑錛屾垜浠篃鍙互鐢ㄧ┖鏍兼垨鍏跺畠鐨勬潵鍒嗛殧錛岃繖鍙栧喅浜庝綘鐨勬暟鎹粨鏋勩?/p>
褰撶劧浣犱篃鍙互涓嶈鏂囦歡錛屾敼浠庢暟鎹簱閲岃璧勬枡錛屽氨涓嶅啀搴熻瘽浜嗐?br />
鏁堟灉鍥懼涓嬶細
聽
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=635858
鏈湡鏂囩珷浠嬬粛浜嗕竴浣嶅涓茬殑涓撴爮浣滃錛屽悓鏃朵篃鏄垜鐨勬湅鍙嬪拰鍚屼簨 Dethe Elza銆侱ethe 鍦ㄥ埄鐢?XML 榪涜 Web 搴旂敤紼嬪簭寮鍙戞柟闈㈢粡楠屼赴瀵岋紝鍦ㄦ錛屾垜瑕佹劅璋粬瀵規垜鍦ㄤ粙緇嶄嬌鐢?DOM 鍜?ECMAScript 榪涜 XML 緙栫▼榪欎竴鏂歸潰鐨勫府鍔┿傝瀵嗗垏鍏蟲敞鏈笓鏍忥紝浠ヤ簡瑙?Dethe 鐨勬洿澶氫笓鏍忔枃绔犮?鈥斺?David Mertz
DOM 鏄鐞?XML 鍜?HTML 鐨勬爣鍑?API 涔嬩竴銆傜敱浜庡畠鍗犵敤鍐呭瓨澶с侀熷害鎱紝騫朵笖鍐楅暱錛屾墍浠ョ粡甯稿彈鍒頒漢浠殑鎸囪矗銆傚敖綆″姝わ紝瀵逛簬寰堝搴旂敤紼嬪簭鏉ヨ錛屽畠浠嶇劧鏄渶浣抽夋嫨錛岃屼笖姣?XML 鐨勫彟涓涓富瑕?API 鈥斺?SAX 鏃犵枒瑕佺畝鍗曞緱澶氥侱OM 姝i愭笎鍑虹幇鍦ㄤ竴浜涘伐鍏蜂腑錛屾瘮濡?Web 嫻忚鍣ㄣ丼VG 嫻忚鍣ㄣ丱penOffice錛岀瓑絳夈?/p>
DOM 寰堝ソ錛屽洜涓哄畠鏄竴縐嶆爣鍑嗭紝騫朵笖琚箍娉涘湴瀹炵幇錛屽悓鏃朵篃鍐呯疆鍒板叾浠栨爣鍑嗕腑銆備綔涓烘爣鍑嗭紝瀹冨鏁版嵁鐨勫鐞嗕笌緙栫▼璇█鏃犲叧錛堣繖鍙兘鏄紭鐐癸紝涔熷彲鑳芥槸緙虹偣錛屼絾鑷沖皯浣挎垜浠鐞嗘暟鎹殑鏂瑰紡鍙樺緱涓鑷達級銆侱OM 鐜板湪涓嶄粎鍐呯疆浜?Web 嫻忚鍣紝鑰屼笖涔熸垚涓鴻澶氬熀浜?XML 鐨勮鑼冪殑涓閮ㄥ垎銆傛棦鐒跺畠宸茬粡鎴愪負鎮ㄧ殑宸ュ叿鐨勪竴閮ㄥ垎錛屽茍涓旀垨璁告偍鍋跺皵榪樹細浣跨敤瀹冿紝鎴戞兂鐜板湪搴旇鍏呭垎鍒╃敤瀹冪粰鎴戜滑甯︽潵鐨勫姛鑳戒簡銆?/p>
鍦ㄤ嬌鐢?DOM 涓孌墊椂闂村悗錛屾偍浼氱湅鍒板艦鎴愪簡涓浜涙ā寮?鈥斺?鎮ㄦ兂瑕佸弽澶嶅仛鐨勪簨鎯呫傚揩鎹鋒柟寮忓彲浠ュ府鍔╂偍澶勭悊鍐楅暱鐨?DOM錛屽茍鍒涘緩鑷В閲婄殑銆佷紭闆呯殑浠g爜銆傝繖閲屾敹闆嗕簡涓浜涙垜緇忓父浣跨敤鐨勬妧宸у拰璇紿嶏紝榪樻湁涓浜?JavaScript 紺轟緥銆?/p>
絎竴涓瘈紿嶅氨鏄滄病鏈夎瘈紿嶁濄侱OM 鏈変袱縐嶆柟娉曞皢瀛╁瓙鑺傜偣娣誨姞鍒板鍣ㄨ妭鐐癸紙甯稿父鏄竴涓?Element
錛屼篃鍙兘鏄竴涓?Document
鎴?DocumentFragment
錛夛細appendChild(node)
鍜?insertBefore(node, referenceNode)
銆傜湅璧鋒潵浼間箮緙哄皯浜嗕粈涔堛傚亣濡傛垜鎯沖湪涓涓弬鑰冭妭鐐瑰悗闈㈡彃鍏ユ垨鑰呯敱鍓嶆柊澧烇紙prepend錛変竴涓瓙鑺傜偣錛堜嬌鏂拌妭鐐逛綅浜庡垪琛ㄤ腑鐨勭涓浣嶏級錛屾垜璇ユ庝箞鍋氬憿錛熷緢澶氬勾浠ユ潵錛屾垜鐨勮В鍐蟲柟娉曟槸緙栧啓涓嬪垪鍑芥暟錛?/p>
娓呭崟 1. 鎻掑叆鍜岀敱鍓嶆柊澧炵殑閿欒鏂規硶
|
瀹為檯涓婏紝鍍忔竻鍗?1 涓鏍鳳紝insertBefore()
鍑芥暟宸茬粡琚畾涔変負錛屽湪鍙傝冭妭鐐逛負絀烘椂榪斿洖鍒?appendChild()
銆傚洜姝わ紝鎮ㄥ彲浠ヤ笉浣跨敤涓婇潰鐨勬柟娉曪紝鑰屼嬌鐢?娓呭崟 2 涓殑鏂規硶錛屾垨鑰呰煩榪囧畠浠粎浣跨敤鍐呯疆鍑芥暟錛?/p>
娓呭崟 2. 鎻掑叆鍜岀敱鍓嶆柊澧炵殑姝g‘鏂規硶
|
濡傛灉鎮ㄥ垰鍒氭帴瑙?DOM 緙栫▼錛屾湁蹇呰鎸囧嚭鐨勬槸錛岃櫧鐒舵偍鍙互浣垮涓寚閽堟寚鍚戜竴涓妭鐐癸紝浣嗚鑺傜偣鍙兘瀛樺湪浜?DOM 鏍戜腑鐨勪竴涓綅緗傚洜姝わ紝濡傛灉鎮ㄦ兂灝嗗畠鎻掑叆鍒版爲涓紝娌″繀瑕佸厛灝嗗畠浠庢爲涓Щ闄わ紝鍥犱負瀹冧細鑷姩琚Щ闄ゃ傚綋閲嶆柊灝嗚妭鐐規帓搴忔椂錛岃繖縐嶆満鍒跺緢鏂逛究錛屼粎闇灝嗚妭鐐規彃鍏ュ埌鏂頒綅緗嵆鍙?/p>
鏍規嵁榪欑鏈哄埗錛岃嫢鎯充氦鎹袱涓浉閭昏妭鐐癸紙縐頒負 node1
鍜?node2
錛夌殑浣嶇疆錛屽彲浠ヤ嬌鐢ㄤ笅鍒楁柟妗堜箣涓錛?/p>
|
鎴?/p>
|
![]() ![]() |
![]()
|
Web 欏甸潰涓ぇ閲忓簲鐢ㄤ簡 DOM銆傝嫢璁塊棶 bookmarklets 绔欑偣錛堝弬闃?鍙傝冭祫鏂?/font>錛夛紝鎮ㄤ細鍙戠幇寰堝鏈夊垱鎰忕殑綆鐭剼鏈紝瀹冧滑鍙互閲嶆柊緙栨帓欏甸潰錛屾彁鍙栭摼鎺ワ紝闅愯棌鍥劇墖鎴?Flash 騫垮憡錛岀瓑絳夈?/p>
浣嗘槸錛屽洜涓?Internet Explorer 娌℃湁瀹氫箟 Node
鎺ュ彛甯擱噺錛堝彲浠ョ敤浜庤瘑鍒妭鐐圭被鍨嬶級錛屾墍浠ユ偍蹇呴』紜繚鍦ㄩ仐婕忔帴鍙e父閲忔椂錛岄鍏堜負 Web 鍦?DOM 鑴氭湰涓畾涔夋帴鍙e父閲忋?/p>
娓呭崟 3. 紜繚鑺傜偣琚畾涔?/b>
|
娓呭崟 4 灞曠ず濡備綍鎻愬彇鍖呭惈鍦ㄨ妭鐐逛腑鐨勬墍鏈夋枃鏈妭鐐癸細
|
![]() ![]() |
![]()
|
浜轟滑甯稿父鎶辨?DOM 澶繃鍐楅暱錛屽茍涓旂畝鍗曠殑鍔熻兘涔熼渶瑕佺紪鍐欏ぇ閲忎唬鐮併備緥濡傦紝濡傛灉鎮ㄦ兂鍒涘緩涓涓寘鍚枃鏈茍鍝嶅簲鐐瑰嚮鎸夐挳鐨?<div>
鍏冪礌錛屼唬鐮佸彲鑳界被浼間簬錛?/p>
娓呭崟 5. 鍒涘緩 <div> 鐨勨滄極闀夸箣璺?/b>
|
鑻ラ綣佹寜鐓ц繖縐嶆柟寮忓垱寤鴻妭鐐癸紝閿叆鎵鏈夎繖浜涗唬鐮佷細浣挎偍寰堝揩鐤叉儷涓嶅牚銆傚繀欏繪湁鏇村ソ鐨勮В鍐蟲柟妗?鈥斺?紜疄鏈夎繖鏍風殑瑙e喅鏂規錛佷笅闈㈣繖涓疄鐢ㄥ伐鍏峰彲浠ュ府鍔╂偍鍒涘緩鍏冪礌銆佽緗厓绱犲睘鎬у拰椋庢牸錛屽茍娣誨姞鏂囨湰瀛愯妭鐐廣傞櫎浜?name
鍙傛暟錛屽叾浠栧弬鏁伴兘鏄彲閫夌殑銆?/p>
娓呭崟 6. 鍑芥暟 elem() 蹇嵎鏂瑰紡
|
浣跨敤璇ュ揩鎹鋒柟寮忥紝鎮ㄨ兘澶熶互鏇村姞綆媧佺殑鏂規硶鍒涘緩 娓呭崟 5 涓殑 <div>
鍏冪礌銆傛敞鎰忥紝attrs
鍜?style
鍙傛暟鏄嬌鐢?JavaScript 鏂囨湰瀵硅薄鑰岀粰鍑虹殑銆?/p>
娓呭崟 7. 鍒涘緩 <div> 鐨勭畝渚挎柟娉?/b>
|
鍦ㄦ偍鎯寵蹇熷垱寤哄ぇ閲忓鏉傜殑 DHTML 瀵硅薄鏃訛紝榪欑瀹炵敤宸ュ叿鍙互鑺傜渷鎮ㄥぇ閲忕殑鏃墮棿銆傛ā寮忓湪榪欓噷灝辨槸鎸囷紝濡傛灉鎮ㄦ湁涓縐嶉渶瑕侀綣佸垱寤虹殑鐗瑰畾鐨?DOM 緇撴瀯錛屽垯浣跨敤瀹炵敤宸ュ叿鏉ュ垱寤哄畠浠傝繖涓嶄絾鍑忓皯浜嗘偍緙栧啓鐨勪唬鐮侀噺錛岃屼笖涔熷噺灝戜簡閲嶅鐨勫壀鍒囥佺矘璐翠唬鐮侊紙閿欒鐨勭姜欖佺ジ棣栵級錛屽茍涓斿湪闃呰浠g爜鏃舵濊礬鏇村姞娓呮櫚銆?/p>
![]() ![]() |
![]()
|
DOM 閫氬父寰堥毦鍛婅瘔鎮紝鎸夌収鏂囨。鐨勯『搴忥紝涓嬩竴涓妭鐐規槸浠涔堛備笅闈㈡湁涓浜涘疄鐢ㄥ伐鍏鳳紝鍙互甯姪鎮ㄥ湪鑺傜偣闂村墠鍚庣Щ鍔細
|
![]() ![]() |
![]()
|
鏈夋椂鍊欙紝鎮ㄥ彲鑳芥兂瑕侀亶鍘?DOM錛屽湪姣忎釜鑺傜偣璋冪敤鍑芥暟鎴栦粠姣忎釜鑺傜偣榪斿洖涓涓箋傚疄闄呬笂錛岀敱浜庤繖浜涙兂娉曢潪甯稿叿鏈夋櫘閬嶆э紝鎵浠?DOM Level 2 宸茬粡鍖呭惈浜嗕竴涓О涓?DOM Traversal and Range 鐨勬墿灞曪紙涓鴻凱浠?DOM 鎵鏈夎妭鐐瑰畾涔変簡瀵硅薄鍜?API錛夛紝瀹冪敤鏉ヤ負 DOM 涓殑鎵鏈夎妭鐐瑰簲鐢ㄥ嚱鏁板拰鍦?DOM 涓夋嫨涓涓寖鍥淬傚洜涓鴻繖浜涘嚱鏁版病鏈夊湪 Internet Explorer 涓畾涔夛紙鑷沖皯鐩墠鏄繖鏍鳳級錛屾墍浠ユ偍鍙互浣跨敤 nextNode()
鏉ュ仛涓浜涚被浼肩殑浜嬫儏銆?/p>
鍦ㄨ繖閲岋紝鎴戜滑鐨勬兂娉曟槸鍒涘緩涓浜涚畝鍗曘佹櫘閫氱殑宸ュ叿錛岀劧鍚庝互涓嶅悓鐨勬柟寮忕粍瑁呭畠浠潵杈懼埌棰勬湡鐨勬晥鏋溿傚鏋滄偍寰堢啛鎮夊嚱鏁板紡緙栫▼錛岃繖鐪嬭搗鏉ヤ細寰堜翰鍒囥侭eyond JS 搴擄紙鍙傞槄 鍙傝冭祫鏂?/font>錛夊皢姝ょ悊蹇靛彂鎵厜澶с?/p>
娓呭崟 9. 鍑芥暟寮?DOM 瀹炵敤宸ュ叿
|
娓呭崟 9 鍖呭惈浜?4 涓熀鏈伐鍏楓?code>listNodes() 鍜?listNodesReversed()
鍑芥暟鍙互鎵╁睍鍒頒竴涓彲閫夌殑闀垮害錛岃繖涓?Array
鐨?slice()
鏂規硶鏁堟灉綾諱技錛屾垜鎶婅繖涓綔涓虹暀緇欐偍鐨勭粌涔犮傚彟涓涓渶瑕佹敞鎰忕殑鏄紝map()
鍜?filter()
鍑芥暟鏄畬鍏ㄩ氱敤鐨勶紝鐢ㄤ簬澶勭悊浠諱綍 鍒楄〃錛堜笉鍙槸鑺傜偣鍒楄〃錛夈傜幇鍦紝鎴戝悜鎮ㄥ睍紺哄畠浠殑鍑犵緇勫悎鏂瑰紡銆?/p>
娓呭崟 10. 浣跨敤鍑芥暟寮忓疄鐢ㄥ伐鍏?/b>
|
鎮ㄥ彲浠ヤ嬌鐢ㄨ繖浜涘疄鐢ㄥ伐鍏鋒潵鎻愬彇 ID銆佷慨鏀規牱寮忋佹壘鍒版煇縐嶈妭鐐瑰茍縐婚櫎錛岀瓑絳夈備竴鏃?DOM Traversal and Range API 琚箍娉涘疄鐜幫紝鎮ㄦ棤闇棣栧厛鏋勫緩鍒楄〃錛屽氨鍙互鐢ㄥ畠浠慨鏀?DOM 鏍戙傚畠浠笉浣嗗姛鑳藉己澶э紝騫朵笖宸ヤ綔鏂瑰紡涔熶笌鎴戝湪涓婇潰鎵寮鴻皟鐨勬柟寮忕被浼箋?/p>
娉ㄦ剰錛屾牳蹇?DOM API 騫朵笉鑳戒嬌鎮ㄥ皢 XML 鏁版嵁瑙f瀽鍒?DOM錛屾垨鑰呭皢 DOM 搴忓垪鍖栦負 XML銆傝繖浜涘姛鑳介兘瀹氫箟鍦?DOM Level 3 鐨勬墿灞曢儴鍒嗏淟oad and Save鈥濓紝浣嗗畠浠繕娌℃湁琚畬鍏ㄥ疄鐜幫紝鍥犳鐜板湪涓嶈鑰冭檻榪欎簺銆傛瘡涓鉤鍙幫紙嫻忚鍣ㄦ垨鍏朵粬涓撲笟 DOM 搴旂敤紼嬪簭錛夋湁鑷繁鍦?DOM 鍜?XML 闂磋漿鎹㈢殑鏂規硶錛屼絾璺ㄥ鉤鍙拌漿鎹笉鍦ㄦ湰鏂囪璁鴻寖鍥翠箣鍐呫?/p>
DOM 騫朵笉鏄崄鍒嗗畨鍏ㄧ殑宸ュ叿 鈥斺?鐗瑰埆鏄嬌鐢?DOM API 鍒涘緩涓嶈兘浣滀負 XML 搴忓垪鍖栫殑鏍戞椂銆傜粷瀵逛笉瑕佸湪鍚屼竴涓▼搴忎腑娣峰悎浣跨敤 DOM1 闈炲悕縐扮┖闂?API 鍜?DOM2 鍚嶇О絀洪棿鎰熺煡鐨?API錛堜緥濡傦紝createElement
鍜?createElementNS
錛夈傚鏋滄偍浣跨敤鍚嶇О絀洪棿錛岃灝介噺鍦ㄦ牴鍏冪礌浣嶇疆澹版槑鎵鏈夊悕縐扮┖闂達紝騫朵笖涓嶈瑕嗙洊鍚嶇О絀洪棿鍓嶇紑錛屽惁鍒欐儏鍐典細闈炲父娣蜂貢銆備竴鑸潵璇達紝鍙鎸夌収鎯緥錛屽氨涓嶄細瑙﹀彂浣挎偍闄峰叆楹葷儲鐨勪復鐣屾儏鍐點?/p>
濡傛灉鎮ㄤ竴鐩翠嬌鐢?Internet Explorer 鐨?innerText
鍜?innerHTML
榪涜瑙f瀽錛岄偅涔堟偍鍙互璇曡瘯浣跨敤 elem()
鍑芥暟銆傞氳繃鏋勫緩綾諱技鐨勪竴浜涘疄鐢ㄥ伐鍏鳳紝鎮ㄤ細寰楀埌鏇村渚垮埄錛屽茍涓旂戶鎵夸簡璺ㄥ鉤鍙頒唬鐮佺殑浼樿秺鎬с傚皢榪欎袱縐嶆柟娉曟販鍚堜嬌鐢ㄦ槸闈炲父緋熺硶鐨勩?/p>
鏌愪簺 Unicode 瀛楃騫舵病鏈夊寘鍚湪 XML 涓侱OM 鐨勫疄鐜頒嬌鎮ㄥ彲浠ユ坊鍔犲畠浠紝浣嗗悗鏋滄槸鏃犳硶搴忓垪鍖栥傝繖浜涘瓧絎﹀寘鎷ぇ澶氭暟鐨勬帶鍒跺瓧絎﹀拰 Unicode 浠g悊瀵癸紙surrogate pair錛変腑鐨勫崟涓瓧絎︺傚彧鏈夋偍璇曞浘鍦ㄦ枃妗d腑鍖呭惈浜岃繘鍒舵暟鎹椂鎵嶄細閬囧埌榪欑鎯呭喌錛屼絾榪欐槸鍙︿竴縐嶈漿鍚戯紙gotcha錛夋儏鍐點?/p>
![]() ![]() |
![]()
|
鎴戝凡緇忎粙緇嶄簡 DOM 鑳藉仛鐨勫緢澶氫簨鎯咃紝浣嗘槸 DOM錛堝拰 JavaScript錛夊彲浠ュ仛鐨勪簨鎯呰繙涓嶆榪欎簺銆備粩緇嗙爺絀躲佹彛鎽╄繖浜涗緥瀛愶紝鐪嬬湅鏄浣曚嬌鐢ㄥ畠浠潵瑙e喅鍙兘闇瑕佸鎴風鑴氭湰銆佹ā鏉挎垨涓撶敤 API 鐨勯棶棰樸?/p>
DOM 鏈夎嚜宸辯殑灞闄愭у拰緙虹偣錛屼絾鍚屾椂涔熸嫢鏈変紬澶氫紭鐐癸細瀹冨唴緗簬寰堝搴旂敤紼嬪簭涓紱鏃犺浣跨敤 Java 鎶鏈丳ython 鎴?JavaScript錛屽畠閮戒互鐩稿悓鏂瑰紡宸ヤ綔錛涘畠闈炲父渚夸簬浣跨敤 SAX錛涗嬌鐢ㄤ笂榪扮殑妯℃澘錛屽畠浣跨敤璧鋒潵鏃㈢畝媧佸張寮哄ぇ銆傝秺鏉ヨ秺澶氱殑搴旂敤紼嬪簭寮濮嬫敮鎸?DOM錛岃繖鍖呮嫭鍩轟簬 Mozilla 鐨勫簲鐢ㄧ▼搴忋丱penOffice 鍜?Blast Radius 鐨?XMetaL銆傝秺鏉ヨ秺澶氱殑瑙勮寖闇瑕?DOM錛屽茍瀵瑰畠鍔犱互鎵╁睍錛堜緥濡傦紝SVG錛夛紝鍥犳 DOM 鏃舵椂鍒誨埢灝卞湪鎮ㄧ殑韜竟銆備嬌鐢ㄨ繖縐嶈騫挎硾閮ㄧ講鐨勫伐鍏鳳紝緇濆鏄偍鐨勬槑鏅轟箣涓俱?/p>
![]() ![]() |
![]()
|
銆//聽--聽basic聽features聽
銆factory.printing.header聽=聽"This聽is聽MeadCo"聽
銆factory.printing.footer聽=聽"Advanced聽Printing聽by聽scriptX"聽
銆factory.printing.portrait聽=聽false聽
銆factory.printing.leftMargin聽=聽1.0聽
銆factory.printing.topMargin聽=聽1.0聽
銆factory.printing.rightMargin聽=聽1.0聽
銆factory.printing.bottomMargin聽=聽1.0聽
}聽
</script>聽
錛?錛壜?br /><script聽language="javascript">聽
銆銆function聽printsetup(){聽
銆銆//聽鎵撳嵃欏甸潰璁劇疆聽
銆銆wb.execwb(8,1);聽
銆銆}聽
銆銆function聽printpreview(){聽
銆銆//聽鎵撳嵃欏甸潰棰勮聽
銆銆銆銆聽
銆銆wb.execwb(7,1);聽
銆銆銆銆銆聽
銆銆銆銆聽
銆銆}聽
銆銆function聽printit()聽
銆銆{聽
銆銆if聽(confirm(''紜畾鎵撳嵃鍚楋紵''))聽{聽
銆銆wb.execwb(6,6)聽
銆銆}聽
銆銆}聽
銆銆</script>聽
</head>聽
<body>聽
<OBJECT聽classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"聽
height=0聽id=wb聽name=wb聽width=0></OBJECT>聽
<input聽type=button聽name=button_print聽value="鎵撳嵃"聽
onclick="javascript:printit()">聽
<input聽type=button銆name=button_setup聽value="鎵撳嵃欏甸潰璁劇疆"聽
onclick="javascript:printsetup();">聽
<input聽type=button銆name=button_show聽value="鎵撳嵃棰勮"聽
onclick="javascript:printpreview();">聽
<input聽type=button聽name=button_fh聽value="鍏抽棴"聽
onclick="javascript:window.close();">聽
------------------------------------------------聽
鍏充簬榪欎釜緇勪歡榪樻湁鍏朵粬鐨勭敤娉曪紝鍒椾婦濡備笅錛毬?br />WebBrowser.ExecWB(1,1)聽鎵撳紑聽
Web.ExecWB(2,1)聽鍏抽棴鐜板湪鎵鏈夌殑IE紿楀彛錛屽茍鎵撳紑涓涓柊紿楀彛聽
Web.ExecWB(4,1)聽淇濆瓨緗戦〉聽
Web.ExecWB(6,1)聽鎵撳嵃聽
Web.ExecWB(7,1)聽鎵撳嵃棰勮聽
Web.ExecWB(8,1)聽鎵撳嵃欏甸潰璁劇疆聽
Web.ExecWB(10,1)聽鏌ョ湅欏甸潰灞炴?br />Web.ExecWB(15,1)聽濂藉儚鏄挙閿錛屾湁寰呯‘璁ぢ?br />Web.ExecWB(17,1)聽鍏ㄩ壜?br />Web.ExecWB(22,1)聽鍒鋒柊聽
Web.ExecWB(45,1)聽鍏抽棴紿椾綋鏃犳彁紺郝?/p>
2銆佸垎欏墊墦鍗奧?br /><HTML>聽
<HEAD>聽
<STYLE>銆銆聽
銆銆P聽{page-break-after:聽always}聽
</STYLE>聽
</HEAD>聽
<BODY>聽
<%while聽not聽rs.eof%>聽
<P><%=rs(0)%></P>聽
<%rs.movenext%>聽
<%wend%>聽
</BODY>聽
</HTML>聽
3銆丄SP欏甸潰鎵撳嵃鏃跺浣曞幓鎺夐〉闈㈠簳閮ㄧ殑璺緞鍜岄《绔殑欏電爜緙栧彿聽
錛?錛塱e鐨勬枃浠?銆夐〉闈㈣緗?銆夎閲岄潰鐨勯〉鐪夊拰欏佃剼閲岄潰鐨勪笢瑗塊兘鍘繪帀錛屾墦鍗板氨涓嶅嚭鏉ヤ簡銆偮?br />錛?錛?lt;HTML>聽
<HEAD>聽
<TITLE>聽New聽Document聽</TITLE>聽
<META聽NAME="Generator"聽CONTENT="EditPlus">聽
<META聽NAME="Author"聽CONTENT="YC">聽
<script聽language="VBscript">聽
dim聽hkey_root,hkey_path,hkey_key聽
hkey_root="HKEY_CURRENT_USER"聽
hkey_path="\Software\Microsoft\Internet聽Explorer\PageSetup"聽
''//璁劇疆緗戦〉鎵撳嵃鐨勯〉鐪夐〉鑴氫負絀郝?br />function聽pagesetup_null()聽
銆銆on聽error聽resume聽next聽
銆銆Set聽RegWsh聽=聽CreateObject("Wscript.Shell")聽
銆銆hkey_key="\header"銆銆聽
銆銆RegWsh.RegWrite聽hkey_root+hkey_path+hkey_key,""聽
銆銆hkey_key="\footer"聽
銆銆RegWsh.RegWrite聽hkey_root+hkey_path+hkey_key,""聽
end聽function聽
''//璁劇疆緗戦〉鎵撳嵃鐨勯〉鐪夐〉鑴氫負榛樿鍊悸?br />function聽pagesetup_default()聽
銆銆on聽error聽resume聽next聽
銆銆Set聽RegWsh聽=聽CreateObject("Wscript.Shell")聽
銆銆hkey_key="\header"銆銆聽
銆銆RegWsh.RegWrite聽hkey_root+hkey_path+hkey_key,"&w&b欏電爜錛?amp;p/&P"聽
銆銆hkey_key="\footer"聽
銆銆RegWsh.RegWrite聽hkey_root+hkey_path+hkey_key,"&u&b&d"聽
end聽function聽
</script>聽
</HEAD>聽
<BODY>聽
<br/>聽
<br/>聽
<br/>聽
<br/>聽
<br/>聽
<br/><p聽align=center>聽
<input聽type="button"聽value="娓呯┖欏電爜"聽onclick=pagesetup_null()>聽<input聽type="button"聽value="鎭㈠欏靛悧"聽onclick=pagesetup_default()><br/>聽
</p>聽
</BODY>聽
</HTML>聽
4銆佹誕鍔ㄥ撫鎵撳嵃聽
<script聽LANGUAGE=javascript>聽
function聽button1_onclick()聽{聽
銆銆var聽odoc=window.iframe1.document;聽
銆銆var聽r=odoc.body.createTextRange();聽
銆銆var聽stxt=r.htmlText;聽
銆銆alert(stxt)聽
銆銆var聽pwin=window.open("","print");聽
銆銆pwin.document.write(stxt);聽
銆銆pwin.print();聽
}聽
</script>聽
4銆佺敤FileSystem緇勪歡瀹炵幇WEB搴旂敤涓殑鏈湴鐗瑰畾鎵撳嵃聽
<script聽Language=VBscript>聽
function聽print_onclick聽//鎵撳嵃鍑芥暟聽
dim聽label聽
label=document.printinfo.label.value聽//鑾峰緱HTML欏甸潰鐨勬暟鎹?br />set聽objfs=CreateObject("scripting.FileSystemObject")聽//鍒涘緩FileSystem緇勪歡瀵硅薄鐨勫疄渚嬄?br />set聽objprinter=objfs.CreateTextFile聽("LPT1:",true)聽//寤虹珛涓庢墦鍗版満鐨勮繛鎺ヂ?br />objprinter.Writeline("__________________________________")聽//杈撳嚭鎵撳嵃鐨勫唴瀹孤?br />objprinter.Writeline("|聽|")聽
objprinter.Writeline("|聽鎮ㄦ墦鍗扮殑鏁版嵁鏄細"&label&聽"聽|鈥?聽
objprinter.Writeline("|聽|")聽
objprinter.Writeline("|_________________________________|")聽
objprinter.close聽//鏂紑涓庢墦鍗版満鐨勮繛鎺ヂ?br />set聽objprinter=nothing聽
set聽objfs=nothing聽//聽鍏抽棴FileSystem緇勪歡瀵硅薄聽
end聽function聽
</script>聽
鏈嶅姟鍣ㄧ鑴氭湰錛毬?br /><%鈥︹︹β?br />set聽conn=server.CreateObject聽("adodb.connection")聽
conn.Open聽"DSN=name;UID=XXXX;PWD=XXXX;"聽
set聽rs=server.CreateObject("adodb.recordset")聽
rs.Open(鈥渟elect聽鈥︹︹?,conn,1,1聽
鈥︹︹?%>聽//涓庢暟鎹簱榪涜浜や簰聽
HTML欏甸潰緙栫爜錛毬?br /><HTML>聽
鈥︹︹β?br /><FORM聽ID=printinfo聽NAME="printinfo"聽>聽
<INPUT聽type="button"聽value="鎵撳嵃>>"聽id=print聽name=print聽>聽//璋冪敤鎵撳嵃鍑芥暟聽
<INPUT聽type=hidden聽id=text1聽name=label聽value=<%=鈥︹︹?>>聽//淇濆瓨鏈嶅姟鍣ㄧ浼犳潵鐨勬暟鎹?br />鈥︹︹β?br /></HTML>
銆銆
銆銆榪欎釜鏄笉鏄窡XML鐨勭粨鏋勬湁鐐圭浉浼煎憿銆備笉鍚岀殑鏄紝HTML鏂囨。鐨勬爲褰富瑕佸寘鍚〃紺哄厓绱犮佹爣璁扮殑鑺傜偣鍜岃〃紺烘枃鏈覆鐨勮妭鐐廣?/p>7.4.2銆丠TML鏂囨。鐨勮妭鐐?br />銆銆DOM涓嬶紝HTML鏂囨。鍚勪釜鑺傜偣琚涓哄悇縐嶇被鍨嬬殑Node瀵硅薄銆傛瘡涓狽ode瀵硅薄閮芥湁鑷繁鐨勫睘鎬у拰鏂規硶錛屽埄鐢ㄨ繖浜涘睘鎬у拰鏂規硶鍙互閬嶅巻鏁翠釜鏂囨。鏍戙傜敱浜嶩TML鏂囨。鐨勫鏉傛э紝DOM瀹氫箟浜唍odeType鏉ヨ〃紺鴻妭鐐圭殑綾誨瀷銆傝繖閲屽垪鍑篘ode甯哥敤鐨勫嚑縐嶈妭鐐圭被鍨嬶細
鎺ュ彛 | nodeType甯擱噺 | nodeType鍊?/td> | 澶囨敞 |
Element | Node.ELEMENT_NODE | 1 | 鍏冪礌鑺傜偣 |
Text | Node.TEXT_NODE | 3 | 鏂囨湰鑺傜偣 |
Document | Node.DOCUMENT_NODE | 9 | document |
Comment | Node.COMMENT_NODE | 8 | 娉ㄩ噴鐨勬枃鏈?/td> |
DocumentFragment | Node.DOCUMENT_FRAGMENT_NODE | 11 | document鐗囨柇 |
Attr | Node.ATTRIBUTE_NODE | 2 | 鑺傜偣灞炴?/td> |
銆銆DOM鏍戠殑鏍硅妭鐐規槸涓狣ocument瀵硅薄錛岃瀵硅薄鐨刣ocumentElement灞炴у紩鐢ㄨ〃紺烘枃妗f牴鍏冪礌鐨凟lement瀵硅薄錛堝浜嶩TML鏂囨。錛岃繖涓氨鏄?lt;html>鏍囪錛夈侸avascript鎿嶄綔HTML鏂囨。鐨勬椂鍊欙紝document鍗蟲寚鍚戞暣涓枃妗o紝<body>銆?lt;table>絳夎妭鐐圭被鍨嬪嵆涓篍lement銆侰omment綾誨瀷鐨勮妭鐐瑰垯鏄寚鏂囨。鐨勬敞閲娿傚叿浣撹妭鐐圭被鍨嬬殑鍚箟錛岃鍙傝冦奐avascript鏉冨▉鎸囧崡銆嬶紝鍦ㄦ涓嶈禈榪般?/p>
銆銆Document瀹氫箟鐨勬柟娉曞ぇ澶氭暟鏄敓浜у瀷鏂規硶錛屼富瑕佺敤浜庡垱寤哄彲浠ユ彃鍏ユ枃妗d腑鐨勫悇縐嶇被鍨嬬殑鑺傜偣銆傚父鐢ㄧ殑Document鏂規硶鏈夛細
鏂規硶 | 鎻忚堪 |
createAttribute() | 鐢ㄦ寚瀹氱殑鍚嶅瓧鍒涘緩鏂扮殑Attr鑺傜偣銆?/td> |
createComment() | 鐢ㄦ寚瀹氱殑瀛楃涓插垱寤烘柊鐨凜omment鑺傜偣銆?/td> |
createElement() | 鐢ㄦ寚瀹氱殑鏍囪鍚嶅垱寤烘柊鐨凟lement鑺傜偣銆?/td> |
createTextNode() | 鐢ㄦ寚瀹氱殑鏂囨湰鍒涘緩鏂扮殑TextNode鑺傜偣銆?/td> |
getElementById() | 榪斿洖鏂囨。涓叿鏈夋寚瀹歩d灞炴х殑Element鑺傜偣銆?/td> |
getElementsByTagName() | 榪斿洖鏂囨。涓叿鏈夋寚瀹氭爣璁板悕鐨勬墍鏈塃lement鑺傜偣銆?/td> |
銆銆瀵逛簬Element鑺傜偣錛屽彲浠ラ氳繃璋冪敤getAttribute()銆乻etAttribute()銆乺emoveAttribute()鏂規硶鏉ユ煡璇€佽緗垨鑰呭垹闄や竴涓狤lement鑺傜偣鐨勬ц川錛屾瘮濡?lt;table>鏍囪鐨刡order灞炴с備笅闈㈠垪鍑篍lement甯哥敤鐨勫睘鎬э細
灞炴?/td> | 鎻忚堪 |
tagName | 鍏冪礌鐨勬爣璁板悕縐幫紝姣斿<p>鍏冪礌涓篜銆侶TML鏂囨。榪斿洖鐨則abName鍧囦負澶у啓銆?/td> |
銆銆Element甯哥敤鐨勬柟娉曪細
鏂規硶 | 鎻忚堪 |
getAttribute() | 浠ュ瓧絎︿覆褰㈠紡榪斿洖鎸囧畾灞炴х殑鍊箋?/td> |
getAttributeNode() | 浠ttr鑺傜偣鐨勫艦寮忚繑鍥炴寚瀹氬睘鎬х殑鍊箋?/td> |
getElementsByTabName() | 榪斿洖涓涓狽ode鏁扮粍錛屽寘鍚叿鏈夋寚瀹氭爣璁板悕鐨勬墍鏈塃lement鑺傜偣鐨勫瓙瀛欒妭鐐癸紝鍏墮『搴忎負鍦ㄦ枃妗d腑鍑虹幇鐨勯『搴忋?/td> |
hasAttribute() | 濡傛灉璇ュ厓绱犲叿鏈夋寚瀹氬悕瀛楃殑灞炴э紝鍒欒繑鍥瀟rue銆?/td> |
removeAttribute() | 浠庡厓绱犱腑鍒犻櫎鎸囧畾鐨勫睘鎬с?/td> |
removeAttributeNode() | 浠庡厓绱犵殑灞炴у垪琛ㄤ腑鍒犻櫎鎸囧畾鐨凙ttr鑺傜偣銆?/td> |
setAttribute() | 鎶婃寚瀹氱殑灞炴ц緗負鎸囧畾鐨勫瓧絎︿覆鍊鹼紝濡傛灉璇ュ睘鎬т笉瀛樺湪鍒欐坊鍔犱竴涓柊灞炴с?/td> |
setAttributeNode() | 鎶婃寚瀹氱殑Attr鑺傜偣娣誨姞鍒拌鍏冪礌鐨勫睘鎬у垪琛ㄤ腑銆?/td> |
銆銆Attr瀵硅薄浠h〃鏂囨。鍏冪礌鐨勫睘鎬э紝鏈塶ame銆乿alue絳夊睘鎬э紝鍙互閫氳繃Node鎺ュ彛鐨刟ttributes灞炴ф垨鑰呰皟鐢‥lement鎺ュ彛鐨刧etAttributeNode()鏂規硶鏉ヨ幏鍙栥備笉榪囷紝鍦ㄥぇ澶氭暟鎯呭喌涓嬶紝浣跨敤Element鍏冪礌灞炴х殑鏈綆鍗曟柟娉曟槸getAttribute()鍜宻etAttribute()涓や釜鏂規硶錛岃屼笉鏄疉ttr瀵硅薄銆?
7.4.3銆佷嬌鐢―OM鎿嶄綔HTML鏂囨。銆銆闇瑕佹寚鍑虹殑鏄紝childNodes[]鐨勫煎疄闄呬笂鏄竴涓狽odeList瀵硅薄銆傚洜姝わ紝鍙互閫氳繃閬嶅巻childNodes[]鏁扮粍鐨勬瘡涓厓绱狅紝鏉ユ灇涓句竴涓粰瀹氳妭鐐圭殑鎵鏈夊瓙鑺傜偣錛涢氳繃閫掑綊錛屽彲浠ユ灇涓炬爲涓殑鎵鏈夎妭鐐廣備笅琛ㄥ垪鍑轟簡Node瀵硅薄鐨勪竴浜涘父鐢ㄥ睘鎬у拰鏂規硶錛?/p>
銆銆Node瀵硅薄甯哥敤灞炴э細
灞炴?/td> | 鎻忚堪 |
attributes | 濡傛灉璇ヨ妭鐐規槸涓涓狤lement錛屽垯浠amedNodeMap褰㈠紡榪斿洖璇ュ厓绱犵殑灞炴с?/td> |
childNodes | 浠ode[]鐨勫艦寮忓瓨鏀懼綋鍓嶈妭鐐圭殑瀛愯妭鐐廣傚鏋滄病鏈夊瓙鑺傜偣錛屽垯榪斿洖絀烘暟緇勩?/td> |
firstChild | 浠ode鐨勫艦寮忚繑鍥炲綋鍓嶈妭鐐圭殑絎竴涓瓙鑺傜偣銆傚鏋滄病鏈夊瓙鑺傜偣錛屽垯涓簄ull銆?/td> |
lastChild | 浠ode鐨勫艦寮忚繑鍥炲綋鍓嶈妭鐐圭殑鏈鍚庝竴涓瓙鑺傜偣銆傚鏋滄病鏈夊瓙鑺傜偣錛屽垯涓簄ull銆?/td> |
nextSibling | 浠ode鐨勫艦寮忚繑鍥炲綋鍓嶈妭鐐圭殑鍏勫紵涓嬩竴涓妭鐐廣傚鏋滄病鏈夎繖鏍風殑鑺傜偣錛屽垯榪斿洖null銆?/td> |
nodeName | 鑺傜偣鐨勫悕瀛楋紝Element鑺傜偣鍒欎唬琛‥lement鐨勬爣璁板悕縐般?/td> |
nodeType | 浠h〃鑺傜偣鐨勭被鍨嬨?/td> |
parentNode | 浠ode鐨勫艦寮忚繑鍥炲綋鍓嶈妭鐐圭殑鐖惰妭鐐廣傚鏋滄病鏈夌埗鑺傜偣錛屽垯涓簄ull銆?/td> |
previousSibling | 浠ode鐨勫艦寮忚繑鍥炵揣鎸ㄥ綋鍓嶈妭鐐廣佷綅浜庡畠涔嬪墠鐨勫厔寮熻妭鐐廣傚鏋滄病鏈夎繖鏍風殑鑺傜偣錛屽垯榪斿洖null銆?/td> |
銆銆Node瀵硅薄甯哥敤鏂規硶錛?/p>
鏂規硶 | 鎻忚堪 |
appendChild() | 閫氳繃鎶婁竴涓妭鐐瑰鍔犲埌褰撳墠鑺傜偣鐨刢hildNodes[]緇勶紝緇欐枃妗f爲澧炲姞鑺傜偣銆?/td> |
cloneNode() | 澶嶅埗褰撳墠鑺傜偣錛屾垨鑰呭鍒跺綋鍓嶈妭鐐逛互鍙婂畠鐨勬墍鏈夊瓙瀛欒妭鐐廣?/td> |
hasChildNodes() | 濡傛灉褰撳墠鑺傜偣鎷ユ湁瀛愯妭鐐癸紝鍒欏皢榪斿洖true銆?/td> |
insertBefore() | 緇欐枃妗f爲鎻掑叆涓涓妭鐐癸紝浣嶇疆鍦ㄥ綋鍓嶈妭鐐圭殑鎸囧畾瀛愯妭鐐逛箣鍓嶃傚鏋滆鑺傜偣宸茬粡瀛樺湪錛屽垯鍒犻櫎涔嬪啀鎻掑叆鍒板畠鐨勪綅緗?/td> |
removeChild() | 浠庢枃妗f爲涓垹闄ゅ茍榪斿洖鎸囧畾鐨勫瓙鑺傜偣銆?/td> |
replaceChild() | 浠庢枃妗f爲涓垹闄ゅ茍榪斿洖鎸囧畾鐨勫瓙鑺傜偣錛岀敤鍙︿竴涓妭鐐規浛鎹㈠畠銆?/td> |
銆銆鎺ヤ笅鏉ワ紝璁╂垜浠嬌鐢ㄤ笂榪扮殑DOM搴旂敤緙栫▼鎺ュ彛錛屾潵璇曠潃鎿嶄綔HTML鏂囨。銆?/p>