当前位置:编程学习 > asp >>

asp+xml 问题

别人从软件上传一个XML格式的数据,格式为:Data="数据内容";
"数据内容"是一个字符串,它是由XML结构,包含了用户的基本信息和使用数据.前部分是用户信息,<data>与</data>之间为使用数据,使用数据是一个二维表,包含有SetPoint,Violation,Average,PowerOn,PainLevel五个字段,数据行由<RowData>与</RowData>分开.
具体信息:参数: 'Data = ' +strTemp

strTemp定义如下:

strTemp:='<FirstName>'+UserInfo.Name+'</FirstName>';

strTemp:=strTemp+'<LastName>'+UserInfo.LastName+'</LastName>';

strTemp:=strTemp+'<Address>'+UserInfo.Address+'</Address>';

strTemp:=strTemp+'<City>'+UserInfo.City+'</City>';

strTemp:=strTemp+'<State>'+UserInfo.State+'</State>';

strTemp:=strTemp+'<ZipCode>'+UserInfo.ZipCode+'</ZipCode>';

strTemp:=strTemp+'<Country>'+UserInfo.Country+'</Country>';

strTemp:=strTemp+'<PhoneNo>'+UserInfo.PhoneNo+'</PhoneNo>';

strTemp:=strTemp+'<Email>'+UserInfo.Email+'</Email>';

strTemp:=strTemp+'<SerialNo>'+UserInfo.SerialNo+'</SerialNo>';

strTemp:=strTemp+'<Data>';

for i:=0 to lstData.Count-1 do

begin

strTemp:=strTemp+'<RowData>';

pRec:=PBackAidRec(lstData.Items[i]);

strTemp:=strTemp+'<SetPoint>'+IntToStr(pRec.nSetPoint)+'</SetPoint>';

strTemp:=strTemp+'<Violation>'+IntToStr(pRec.nViolation)+'</Violation>';

strTemp:=strTemp+'<Average>'+IntToStr(pRec.Average)+'</Average>';

strTemp:=strTemp+'<PowerOn>'+IntToStr(pRec.PowerOn)+'</PowerOn>';

strTemp:=strTemp+'<PainLevel>'+IntToStr(pRec.nPainLevel)+'</PainLevel>';

strTemp:=strTemp+'</RowData>';

end;

strTemp:=strTemp+'</Data>';

我在ASP中应该怎么处理。把每个字段的数据单独提取出来写如库中~~
答案:
用字符串函数截取<FirstName>和</FirstName>内的内容,保存到FirstName中,其他同理
或者使用XMLDOM:
下面说一下创建,查询,修改等对xml操作的主要方法

'创建DOM对象
set objDom=server.CreateObject("MicroSoft.XMLDom")

'取得xml数据
'方法1 取得xml文件的xml数据
objDom.load("c:\test.xml")
'方法2 取得xml数据串的数据
objDom.loadxml("<people><man name="sd"/></people>")

'创建一个节点对象
Set Newnode=objDom.CreateElement("people")
'给这个节点赴值
Newnode.Text="人"
' 给这个节点添加属性
Set NewAttribute=objDom.CreateNode("attribute","name","")
NewAttribute.Text= "张三"
Newnode.SetAttributeNode NewAttribute
'给这个节点添加子节点
Set NewnodeChild=objDom.CreateElement("address")
Newnode.appendChild NewnodeChild
'保存这个节点对象
objDom.appendChild Newnode
objDom.save("c:\test.xml")

'查找一个节点对象
set objtofind=objdom.documentElement.SelectSingleNode("//people/man")
'取出这个节点对象的 节点名,节点值,某个属性值,和全部的xml
nodename=objtofind.nodename
nodevalue="/objtofind.text
objtofind.GetAttributeNode("name").Nodevalue" '属性名为name的属性值

'取出一个属性节点对象
set objattrtofind=objdom.documentElement.SelectSingleNode("//people/man"). GetAttributeNode("name")
'取出这个节点的属性名,属性值
nodeattrname=objattrtofind.nodename
nodeattrvalue="/objattrtofind.nodevalue

'删除一个节点对象
set objnode=objdom.documentElement.SelectSingleNode("//people/man") '要删除的节点
set objparentnode=objdom.documentElement.SelectSingleNode("//people") '要删除的节点的父节点
objparentnode.removeChild objnode

'取出一个节点的字节点集合
set objnodes=objdom.documentElement.SelectSingleNode("//people/man").ChildNodes
遍历这个集合
方法1
for each element in objnodes
response.write element.nodename 字节点名
response.write element.text 字节点值
next
方法2
domlength=objnodes.length
for i = 0 to domlength-1
response.write objnodes.childnodes(i).nodename 字节点名
response.write objnodes.childnodes(i).text 字节点值
next

'取出一个节点的属性集合
set objnodes=objdom.documentElement.SelectSingleNode("//people/man").GetAttributeNode("name").attributes
遍历这个集合
for each element in objnodes
response.write element.nodename 属性名
response.write element.nodevalue 属性值
next

等能够熟练的运用xmldom对象来操作xml文件了,就可以享
受xmlhttp对象来实现asp下的许多功能了。
掌握一些编程语言可让您在职场竞争中收放自如,而扎实的技巧将会让您炙手可热。但是,语言种类繁多。很多开发人员掌握多种语言,懂得在合适的地方合适的时间使用正确的语言。为你更喜欢哪门网页编程语言? http://www.gdglc.com/bbs/dispbbs.asp?boardID=2&ID=11101&page=1

上一个:asp 二级联动搜索
下一个:asp如何调用Ajax

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,