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&"
"
strError=strError&XMLMorntekDocument.parseerror.url&"
"
strError=strError&XMLMorntekDocument.parseerror.line&"
"
strError=strError&XMLMorntekDocument.parseerror.filepos&"
"
strError=strError&XMLMorntekDocument.parseerror.srcText&"
"
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
%>