ASP遍历xml树
<%@ Language="VBScript" CODEPAGE="65001"%>
<%
Option Explicit
Session.CodePage=65001
Response.Charset="UTF-8"
Dim xmlStr, xml
xmlStr="<?xml version=""1.0"" encoding=""UTF-8""?>"&_
"<books>"&_
" <book>"&_
" <name>三国演义</name>"&_
" <price>99</price>"&_
" </book>"&_
" <book>"&_
" <name>水浒传</name>"&_
" <price><![CDATA[22]]></price>"&_
" </book>"&_
"</books>"
Set xml = Server.CreateObject("MSXML2.DOMDocument")
xml.preserveWhiteSpace = true
xml.async = false
xml.LoadXML(xmlStr)
If xml.parseError.errorCode <> 0 Then
Response.Write "Description: " & xml.parseError.reason & "Line: " & xml.parseError.Line
Else
Dim book, i
'方法1
Set book=xml.selectNodes("/books/book")
For i=0 To book.length-1
Response.Write book(i).selectSingleNode("name").text&":"&book(i).selectSingleNode("price").text&"<br>"
Next
Response.Write "----<br>"
'方法2
For i=0 To book.length-1
Response.Write book(i).selectSingleNode("name").text
Response.Write book(i).childNodes(1).text&":"&book(i).childNodes(3).text&"<br>"
Next
Response.Write "----<br>"
'方法3
For i=0 To book.length-1
Response.Write book(i).getElementsByTagName("name").Item(0).text&":"&book(i).getElementsByTagName("price").Item(0).text&"<br>"
Next
Response.Write "----<br>"
'方法4
Dim n, p
Set n=xml.getElementsByTagName("name")
Set p=xml.getElementsByTagName("price")
For i=0 To n.length-1
Response.Write n(i).text&":"&p.item(i).text&"<br>"
Next
Response.Write "----<br>"
'方法5
Set n=xml.selectNodes("/books/book/name")
Set p=xml.selectNodes("/books/book/price")
For i=0 To n.Length-1
Response.Write n(i).text&":"&p.item(i).text&"<br>"
Next
End If
Set xml=Nothing
%>
ASP发起SOAP请求
Dim xml, http
Set xml = Server.CreateObject("MSXML2.DOMDocument")
xml.preserveWhiteSpace = true
xml.async = false
set http=server.createobject("MSXML2.XMLHTTP")
http.open "POST","请求地址",false
http.setRequestHeader "SOAPAction", 响应端提供的SOAPAction
http.setRequestHeader "Content-Type", "text/xml;charset=utf-8"
http.setRequestHeader "HOST","响应端域名或IP"
http.setRequestHeader "Content-Length",发送xml内容长度 '非必须
http.send(要发送的xml)
If http.readystate=4 then
xml.Load(http.ResponseBody)
'xml.save(Server.MapPath("abc.xml"))
'对接收到的xml进行解析
End If
Set http=Nothing
LODOP打印控件的基本使用
<object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>
<embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0 pluginspage="install_lodop32.exe" />
</object>
<script>
//打印功能
function p(id, num){
var td=$('tr#tr'+id+' > td');
var LODOP=getLodop();
//初始化并命名打印程序
LODOP.PRINT_INIT('汽博会观众入场券打印程序');
//设置纸张尺寸及名称,单位0.1mm
LODOP.SET_PRINT_PAGESIZE(1, 750, 1050, '汽博会观众入场券');
//添加背景图
LODOP.ADD_PRINT_SETUP_BKIMG("<img border='0' src='http://127.0.0.1/2015/201506/08qibohui/images/ticket.jpg'>");
//背景图显示模式
//在预览中显示
LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",1);
//打印背景图
//LODOP.SET_SHOW_MODE("BKIMG_PRINT",1);
//背景图的位置及尺寸
//LODOP.SET_SHOW_MODE('BKIMG_TOP', 1);
//LODOP.SET_SHOW_MODE('BKIMG_LEFT', 1);
//LODOP.SET_SHOW_MODE('BKIMG_WIDTH', '75mm');
//LODOP.SET_SHOW_MODE('BKIMG_HEIGHT', '105mm');
//添加打印内容,默认尺寸单位为像素,可选单位及换算关系:1英寸 = 2.54cm = 25.4mm = 72pt = 96px
//ADD_PRINT_TEXT(intTop,intLeft,intWidth,intHeight,strContent)
//用SET_PRINT_STYLE设置打印式样,该接口只对位于其后方的内容有效
//设置字号,单位是pt
LODOP.SET_PRINT_STYLE("FontSize",18);
//是否加粗
LODOP.SET_PRINT_STYLE("Bold",1);
//设置字体
LODOP.SET_PRINT_STYLE("FontName",'宋体');
//添加打印内容
LODOP.ADD_PRINT_TEXT('45mm','25mm','RightMargin:5mm','6mm','入场券');
LODOP.SET_PRINT_STYLE("FontSize",10);
LODOP.SET_PRINT_STYLE("Bold",0);
LODOP.SET_PRINT_STYLE("FontName",'微软雅黑');
LODOP.ADD_PRINT_TEXT('60mm','15mm','RightMargin:5mm','6mm','姓名:'+td.eq(1).text());
LODOP.ADD_PRINT_TEXT('66mm','15mm','RightMargin:5mm','6mm','单位:'+td.eq(3).text());
LODOP.ADD_PRINT_TEXT('72mm','15mm','RightMargin:5mm','6mm','城市:'+td.eq(3).text());
//也可以用SET_PRINT_STYLEA接口设计字体,此接口位于添加打印内容接口(ADD_PRINT_TEXT和ADD_PRINT_HTM)后面
//数字2是姓名栏的顺序号(ADD_PRINT_TEXT或ADD_PRINT_HTM出现的顺序,从1开始;如果顺序号为0,则对SET_PRINT_STYLEA之前最后添加的打印内容有效)
//LODOP.SET_PRINT_STYLEA(2, "FontSize", 10);
//LODOP.SET_PRINT_STYLEA(2, "Bold", 0);
//LODOP.SET_PRINT_STYLEA(2, "FontName", '微软雅黑');
//LODOP.SET_PRINT_STYLEA(2, "FontColor", '#ff0000');
//添加html
//LODOP.ADD_PRINT_HTM(intTop,intLeft,intWidth,intHeight, document.getElementById('id').innerHTML);
//设置输出以纸张边缘为基
LODOP.SET_PRINT_MODE("POS_BASEON_PAPER",true);
//打印维护,只能对现有字段进行维护,不能添加或删除新字段
//LODOP.PRINT_SETUP();
//打印设计,可以添加、删除打印字段
//LODOP.PRINT_DESIGN();
//打印预览
//LODOP.PREVIEW();
//选择打印机
//LODOP.PRINTA();
//打印
//if (LODOP.SET_PRINT_COPIES(num)){
// LODOP.PRINT();
//}else{
// alert("设置打印份数失败!");
//}
LODOP.PRINT();
}
</script>LODOP官方使用说明及样例:http://www.lodop.net/demo.html
asp生成CODE39码制的条形码
Function barCode(ByVal codeStr)
'code 39码制条形码
codeStr=UCase(codeStr)
If emp(codeStr) Then Exit Function Else codeStr=UCase(cStr(codeStr))
Dim s : s=codeStr
If Not regTest(s, "^[abcdefghijklmnopqrstuvwxyz1234567890 +\-%$./]{1,40}$") Then Exit Function Else s="*"&codeStr&"*"
s=Replace(s,"0","_|_|__||_||_|")
s=Replace(s,"1","_||_|__|_|_||")
s=Replace(s,"2","_|_||__|_|_||")
s=Replace(s,"3","_||_||__|_|_|")
s=Replace(s,"4","_|_|__||_|_||")
s=Replace(s,"5","_||_|__||_|_|")
s=Replace(s,"7","_|_|__|_||_||")
s=Replace(s,"6","_|_||__||_|_|")
s=Replace(s,"8","_||_|__|_||_|")
s=Replace(s,"9","_|_||__|_||_|")
s=Replace(s,"A","_||_|_|__|_||")
s=Replace(s,"B","_|_||_|__|_||")
s=Replace(s,"C","_||_||_|__|_|")
s=Replace(s,"D","_|_|_||__|_||")
s=Replace(s,"E","_||_|_||__|_|")
s=Replace(s,"F","_|_||_||__|_|")
s=Replace(s,"G","_|_|_|__||_||")
s=Replace(s,"H","_||_|_|__||_|")
s=Replace(s,"I","_|_||_|__||_|")
s=Replace(s,"J","_|_|_||__||_|")
s=Replace(s,"K","_||_|_|_|__||")
s=Replace(s,"L","_|_||_|_|__||")
s=Replace(s,"M","_||_||_|_|__|")
s=Replace(s,"N","_|_|_||_|__||")
s=Replace(s,"O","_||_|_||_|__|")
s=Replace(s,"P","_|_||_||_|__|")
s=Replace(s,"Q","_|_|_|_||__||")
s=Replace(s,"R","_||_|_|_||__|")
s=Replace(s,"S","_|_||_|_||__|")
s=Replace(s,"T","_|_|_||_||__|")
s=Replace(s,"U","_||__|_|_|_||")
s=Replace(s,"V","_|__||_|_|_||")
s=Replace(s,"W","_||__||_|_|_|")
s=Replace(s,"X","_|__|_||_|_||")
s=Replace(s,"Y","_||__|_||_|_|")
s=Replace(s,"Z","_|__||_||_|_|")
s=Replace(s,"-","_|__|_|_||_||")
s=Replace(s,"*","_|__|_||_||_|")
s=Replace(s,"/","_|__|__|_|__|")
s=Replace(s,"%","_|_|__|__|__|")
s=Replace(s,"+","_|__|_|__|__|")
s=Replace(s,".","_||__|_|_||_|")
s=Replace(s," ","_|__||_|_||_|")
s=Replace(s,"$","_|__|__|__|_|")
s=Replace(s, "_", "<i></i>")
s=Replace(s, "|", "<b></b>")
barCode="<style>div.barcode{clear:both;margin:0;padding:0;width:auto !important;background:#fff;}div.barcode i,div.barcode b{display:block;float:left;height:50px;font-size:0;overflow:hidden;}div.barcode i{width:2px;background:#fff;}div.barcode b{width:0;border-left:2px solid #000;}div.barcode div{clear:both;font-family:verdana;font-size:14px;line-height:20px;letter-spacing:25px;color:#333;}</style><div class=""barcode"">"&s&"<div>"&codeStr&"</div></div>"
End Function
Function regTest(ByVal str, p)
Dim re
Set re = New RegExp
re.Pattern = p
re.IgnoreCase = true
re.Global = true
regTest = re.Test(str)
End Function
asp xmlhttp发送form表单、xml、json或文本等示例
'发送端
Dim http
set http=server.createobject("MSXML2.XMLHTTP")
'下面一行只有在发送表单时才需要添加
'http.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
http.open "POST","http://127.0.0.1/respond.asp",false
http.send(表单、文本、json、xml)
If http.readystate=4 then
'发送成功
'如果接收数据为乱码,需要用adodb.stream进行转码
'接收文本和json数据:text=http.ResponseText
'接收xml:xml.Load(http.ResponseBody),只有响应端的内容类型是text/xml时,可以使用xml.Load(http.ResponseXML),也可以xml.LoadXML(http.ResponseText)
end if
Set http=Nothing
'响应端
'接收表单直接用Request.Form
'接收文本和json都是用adodb.stream对Request.BinaryRead(Request.TotalBytes)获取的二进制进行文本转换
'接收xml:xml.Load(Request.BinaryRead(Request.TotalBytes))
Dim xml
Set xml = Server.CreateObject("MSXML2.DOMDocument")
xml.preserveWhiteSpace = true
xml.async = false
'xml.Load(二进制)
xml.LoadXml(文本型xml)
If xml.parseError.errorCode <> 0 Then
Response.Write "Description: " & xml.parseError.reason & "
Line: " & xml.parseError.Line
Else
If xml.getElementsByTagName("name").length=0 Then
Response.Write "节点不存在"
Else
Response.Write xml.getElementsByTagName("name").Item(0).text
End If
End Ifasp用服务器端js解析并获取简单json示例
<script type="text/javascript" language="javascript" runat="server">
function jsParseJSON(s){
try{return (new Function('return' + s))(); }catch(e){return false};
}
function jsGetField(s, fld){
var obj=jsParseJSON(s);
return obj===false ? '' : (typeof obj[fld]==='undefined' ? '' : obj[fld]);
}
</script>
<%
Response.Write jsGetField("{""err"":0,""msg"":""ok""}", "msg")
%>
输出结果:okjavascript Array对象
Array 对象属性
| 属性 | 描述 |
|---|---|
| constructor | 返回对创建此对象的数组函数的引用。 |
| length | 设置或返回数组中元素的数目。 |
| prototype | 使您有能力向对象添加属性和方法。 |
Array 对象方法
| 方法 | 描述 |
|---|---|
| concat() | 连接两个或更多的数组,并返回结果。 |
| join() | 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 |
| pop() | 删除并返回数组的最后一个元素 |
| push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 |
| reverse() | 颠倒数组中元素的顺序。 |
| shift() | 删除并返回数组的第一个元素 |
| slice() | 从某个已有的数组返回选定的元素 |
| sort() | 对数组的元素进行排序 |
| splice() | 删除元素,并向数组添加新元素。 |
| toSource() | 返回该对象的源代码。 |
| toString() | 把数组转换为字符串,并返回结果。 |
| toLocaleString() | 把数组转换为本地数组,并返回结果。 |
| unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 |
| valueOf() | 返回数组对象的原始值 |
JQ、js获取iframe中的元素、方法,判断iframe是否加载完成
父窗口操作iframe元素:
window.frames['framename'].document.getElementsByTagName('ul')
window.frames['framename'].$('#aaa').val()
$(window.frames['framename'].document).find('#aaa').val()
父窗口调用iframe方法:
window.frames['framename'].func();
$(window.frames['framename'])[0].func();
$("iframe[name='framename']")[0].contentWindow.func();
iframe获取父窗口元素:
window.parent.$('#abc').val()
$(window.parent.document).find('#abc').val()
-------------------------------------
jquery判断iframe是否加载完成
var iframe=$("#IFrame");
iframe.prop("src","http://www.aijquery.cn");
iframe.load(function(){
alert("加载完毕");
});
用attachEvent来判断
var iframe=$("#IFrame");
iframe.prop("src","http://www.baidu.com");
if (iframe[0].attachEvent){
iframe[0].attachEvent("onload", function(){ // IE
alert("加载完毕");
});
} else {
iframe[0].onload = function(){ // 非IE
alert("加载完毕");
};
}
SQL随机读取数据库记录
Sql server:
select top 10 * from 表 order by newid()
Access:
SELECT top 10 * FROM 表 ORDER BY Rnd(id-timer()) '每次刷新都不同
Rnd(id) 其中的id是自动编号字段,可以利用其他任何数值来完成
比如用姓名字段(UserName)
SELECT top 10 * FROM 表 ORDER BY Rnd(len(UserName))
MySql:
Select * From 表 Order By rand() Limit 10
正则过滤html标签
匹配所有html标签 <[^>]+>|</[^>]+>
过滤所有除a之外的标签 <(?!a |\/a).*?>
过滤所有除img之外的标签 <(?!img\b)[^>]*>
