xml|問題
asp中建立xml對象通常使用:CreateObject("Microsoft.XMLDOM")
讀取節點:selectSingleNode("nodename")//nodename為節點名。
讀取屬性:attributes.getNamedItem("attribute")//attribute為節點中所具有的屬性名稱。
載入xml; load(Server.MapPath("data.xml"))
async 屬性工作表示是否允許非同步下載。
引用:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Response.Charset="UTF-8"%>
<html>
<title>read xml</title>
<body>
<%
dim node,i,nodecount
set Doc = CreateObject("Microsoft.XMLDOM")
Doc.async = false
Doc.load(Server.MapPath("data.xml"))
set root = Doc.documentElement
set nodeLis = root.childNodes
nodeCount = nodeLis.length
For i=1 to nodeCount
set node = nodeLis.nextNode()
set cost = node.attributes.getNamedItem("cost")
%>
第 <%=i%> 條記錄:
<table border="1">
<tr>
<td width="16" rowspan="2"><img src="<%=node.selectSingleNode("img").text%>"/></td>
<td width="17">書名</td>
<td width="48">出版社</td>
<td width="32">價格</td>
</tr>
<tr>
<td>
<%=node.selectSingleNode("name").text%>
</td>
<td>
<%=node.selectSingleNode("publisher").text%>
</td>
<td>
<%= cost.text%>
</td>
</tr>
</table>
<%
Next
%>
</body>
</html>
XML
引用:
<?xml version="1.0" encoding="utf-8"?>
<data>
<book cost="56">
<name>Dreamweaver</name>
<publisher>上海科技出版社</publisher>
<img>img/dw.jpg</img>
</book>
<book cost="62">
<name>Flash</name>
<publisher>鐵道出版社</publisher>
<img>img/flash.jpg</img>
</book>
<book cost="48">
<name>Firweorks</name>
<publisher>教育出版社</publisher>
<img>img/fw.jpg</img>
</book>
</data>
Utf-8和Gb2312亂碼問題的終結
研究好多天了,也試過好多辦法了,總結出目前發現最好的方法:
先說一下基本的東西:
<%@ codepage=65001%>UTF-8
<%@ codepage=936%>簡體中文
<%@ codepage=950%>繁體中文
<%@ codepage=437 %>美國/加拿大英語
<%@ codepage=932 %>日文
<%@ codepage=949 %>韓文
<%@ codepage=866 %>俄文
codepage指定了IIS按什麼編碼讀取傳遞過來的串串(表單提交,地址欄傳遞等)。
出亂碼的原因也就是網站要整合的時候模組編碼不一樣引起的。
就像我的部落格一樣,整合的時候都會出這個問題,因為BLOG是Utf-8的,
近來很多網友都在為這個問題諮詢,我嘗試了很多種方法。
最方便的方法如下:
不要轉換任何模組網頁的編碼該utf-8的還是utf-8,該Gb22312的還是Gb2312
在Utf-8模組的包檔案(如conn.asp,但是要注意conn.asp必須是在第一行調用)最前面加上
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage=65001%>
在GB2312模組的包檔案最前面加上
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Session.CodePage=936%>
其他編碼的類推。
asp讀寫xml
<%
'----------------------------------------------------------------
'程式簡介: 完成asp語言對XML文檔中指定節點文本的增加、刪除、修改、查看
'入口參數: 無
'出口參數: 無
'------------------------------------------------
'函數名字:ConnectXml()
'入口參數: filename 需要串連或開啟的xml檔案名稱
'出口參數: 無
'傳回值 :ConnectXml=0,XMLMorntekDocument就是一個成功裝載XML文檔的對象了。
' ConnectXml<>0,則列印錯誤資訊strError
'------------------------------------------------
dim XMLMorntekDocument
function ConnectXml(filename)
dim strSourceFile
strSourceFile = Server.MapPath(filename)
Set XMLMorntekDocument = Server.CreateObject("Microsoft.XMLDOM")
XMLMorntekDocument.async = false
XMLMorntekDocument.load(strSourceFile)
ConnectXml=XMLMorntekDocument.parseerror.errorcode
if XMLMorntekDocument.parseerror.errorcode<>0 then
strError="<h2>error"&XMLMorntekDocument.parseerror.errorcode&"</h2>"
strError=strError&XMLMorntekDocument.parseerror.reason&"<br>"
strError=strError&XMLMorntekDocument.parseerror.url&"<br>"
strError=strError&XMLMorntekDocument.parseerror.line&"<br>"
strError=strError&XMLMorntekDocument.parseerror.filepos&"<br>"
strError=strError&XMLMorntekDocument.parseerror.srcText&"<br>"
response.write strError
end if
end function
'------------------------------------------------
'函數名字:CloseXml()
'入口參數: 無
'出口參數: 無
'------------------------------------------------
function CloseXml(XMLMorntekDocument)
if IsObject(XMLMorntekDocument) then
set XMLMorntekDocument=nothing
end if
end function
'------------------------------------------------
'函數名字:SelectXmlNodeText(elementname)
'入口參數: elementname 元素的名字
'出口參數: 無
'------------------------------------------------
function SelectXmlNodeText(elementname)
elementname="//"&elementname
temp=XMLMorntekDocument.selectSingleNode(elementname).text
selectXmlNodeText= server.htmlencode(temp)
end function
'------------------------------------------------
'函數名字:InsertXmlNodeText(befelementname,elementname,elementtext)
'入口參數: elementname 插入的元素的名字
' befelementname在此元素的名字前面插入元素
' elementtext 插入的元素的文本
'出口參數: 無
'------------------------------------------------
function InsertXmlNodeText(befelementname,elementname,elementtext)
dim befelement,element
set befelement=XMLMorntekDocument.selectSingleNode("//"&befelementname)
set element= XMLMorntekDocument.createelement(elementname)
befelement.insertBefore element,befelement.firstchild
element.text=elementtext
end function
'------------------------------------------------
'函數名字:UpdateXmlNodeText(elementname,newelementtext)
'入口參數: elementname 元素的名字
' newelementtext元素的新文本
'出口參數: 無
'------------------------------------------------
function UpdateXmlNodeText(elementname,newelementtext)
dim element
set element=XMLMorntekDocument.selectSingleNode("//"&elementname)
element.text=newelementtext
end function
'------------------------------------------------
'函數名字:DeleteXmlNodeText(elementname)
'入口參數: elementname 元素的名字
'出口參數: 無
'------------------------------------------------
function DeleteXmlNodeText(elementname)
XMLMorntekDocument.selectSingleNode("//"&elementname).text =""
end function
%>