首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

ASP获取XML中的内容解决方法

2013-11-25 
ASP获取XML中的内容本帖最后由 oscar_zhong 于 2013-11-21 14:39:55 编辑XML文件名为:note.xml,代码如下:

ASP获取XML中的内容
本帖最后由 oscar_zhong 于 2013-11-21 14:39:55 编辑 XML文件名为:note.xml,代码如下:
   <?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
- <ServiceResult>
  <CurrentPage>1</CurrentPage> 
  <PageSize>100</PageSize> 
  <ResultCount>11</ResultCount> 
  <ResultPages>1</ResultPages> 
- <ResultData>
- <TraceTranslates>
  <piece>2</piece> 
  <weight>333</weight> 
  <code>INFO</code> 
- <TraceTranslate>
  <AWB_CODE>112-04990930</AWB_CODE> 
  <FLIGHT_NO>CK261</FLIGHT_NO> 
  <FLIGHT_DATE>2013-10-11 23:40</FLIGHT_DATE> 
  <SHIMPENT_PIECE>2</SHIMPENT_PIECE> 
  <SHIMPENT_WEIGHT>348</SHIMPENT_WEIGHT> 
  <CARGO_CODE>BKD</CARGO_CODE> 
  <CARGO_NAME>货物订舱</CARGO_NAME> 
  <CARGO_ENNAME /> 
  <TRACE_CODE>2521455</TRACE_CODE> 
  <TRACE_TIME>2013-10-11 23:40</TRACE_TIME> 
  <TRACE_LOCATION>上海浦东</TRACE_LOCATION> 
  <AIRPORT_DEP>上海浦东</AIRPORT_DEP> 
  <AIRPORT_LAND>桃源</AIRPORT_LAND> 
  <ORIGIN_AIRPORT>上海浦东</ORIGIN_AIRPORT> 
  <DESTINATION_AIRPORT>桃源</DESTINATION_AIRPORT> 
  <STARDARD_DATA>BKD 货物订舱: 预订航班CK261(时间 10-11 23:40 地点 上海浦东 机场),2件货物(重量为348KG)</STARDARD_DATA> 
  <TRACE_DATA>状态名称: 订舱确认<BR/>航站名称: 上海浦东<BR/>航班号: CK261<BR/>日期: 2013-10-11<BR/>时间: 23:40<BR/>状态描述: 货物已订妥指定航班的舱位,计划从 上海浦东 运往 桃源 航班计划起飞时间 2340, 计划到达时间 0105<BR/>件数: 2<BR/>重量: 348</TRACE_DATA> 
  <OP_TIME>2013-11-15 13:47</OP_TIME> 
  </TraceTranslate>
- <TraceTranslate>
  <AWB_CODE>112-04990930</AWB_CODE> 
  <FLIGHT_NO>CK261</FLIGHT_NO> 
  <FLIGHT_DATE>2013-10-11 23:44</FLIGHT_DATE> 
  <SHIMPENT_PIECE>2</SHIMPENT_PIECE> 
  <SHIMPENT_WEIGHT>333</SHIMPENT_WEIGHT> 
  <CARGO_CODE>RCS</CARGO_CODE> 
  <CARGO_NAME>货交航空公司指定货栈</CARGO_NAME> 
  <CARGO_ENNAME /> 
  <TRACE_CODE>2521456</TRACE_CODE> 
  <TRACE_TIME>2013-10-11 20:37</TRACE_TIME> 
  <TRACE_LOCATION>上海浦东</TRACE_LOCATION> 
  <AIRPORT_DEP>上海浦东</AIRPORT_DEP> 
  <AIRPORT_LAND>桃源</AIRPORT_LAND> 
  <ORIGIN_AIRPORT>上海浦东</ORIGIN_AIRPORT> 
  <DESTINATION_AIRPORT>桃源</DESTINATION_AIRPORT> 
  <STARDARD_DATA>货交航空公司指定货栈(RCS):在上海浦东机场,航空公司于10-11 20:37 确认收到2件货物(重量为333KG)</STARDARD_DATA> 
  <TRACE_DATA>状态名称: 收货<BR/>航站名称: 上海浦东<BR/>航班号: <BR/>日期: 2013-10-11<BR/>时间: 20:37<BR/>状态描述: 从发货人或其代理 SZT 手中收到出港货物和文件<BR/>件数: 2<BR/>重量: 333</TRACE_DATA> 
  <OP_TIME>2013-11-15 13:47</OP_TIME> 
  </TraceTranslate>
  </TraceTranslates>
  </ResultData>
  </ServiceResult>

想获取上面XML文件中<TRACE_DATA>与</TRACE_DATA>的内容,并循环输出,但提示错误,读取文件代码如下:
<% 
set objXML=server.CreateObject("MSXML2.DOMDocument") 
objXML.async=false 
objXML.load(server.mappath("note.xml"))  
set nodelist=objXML.documentElement.selectNodes("TraceTranslate") 
for each xNode in nodelist 
    response.Write xNode.selectSingleNode("TRACE_DATA").text & " <br>" 

next 

%>

[解决办法]
要显示<br/>的话, 用CDATA


<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
<ServiceResult>
   <CurrentPage>1</CurrentPage> 
   <PageSize>100</PageSize> 
   <ResultCount>11</ResultCount> 
   <ResultPages>1</ResultPages> 
<ResultData>
<TraceTranslates>
   <piece>2</piece> 
   <weight>333</weight> 


   <code>INFO</code> 
<TraceTranslate>
   <AWB_CODE>112-04990930</AWB_CODE> 
   <FLIGHT_NO>CK261</FLIGHT_NO> 
   <FLIGHT_DATE>2013-10-11 23:40</FLIGHT_DATE> 
   <SHIMPENT_PIECE>2</SHIMPENT_PIECE> 
   <SHIMPENT_WEIGHT>348</SHIMPENT_WEIGHT> 
   <CARGO_CODE>BKD</CARGO_CODE> 
   <CARGO_NAME>货物订舱</CARGO_NAME> 
   <CARGO_ENNAME /> 
   <TRACE_CODE>2521455</TRACE_CODE> 
   <TRACE_TIME>2013-10-11 23:40</TRACE_TIME> 
   <TRACE_LOCATION>上海浦东</TRACE_LOCATION> 
   <AIRPORT_DEP>上海浦东</AIRPORT_DEP> 
   <AIRPORT_LAND>桃源</AIRPORT_LAND> 
   <ORIGIN_AIRPORT>上海浦东</ORIGIN_AIRPORT> 
   <DESTINATION_AIRPORT>桃源</DESTINATION_AIRPORT> 
   <STARDARD_DATA>BKD 货物订舱: 预订航班CK261(时间 10-11 23:40 地点 上海浦东 机场),2件货物(重量为348KG)</STARDARD_DATA> 
   <TRACE_DATA><![CDATA[状态名称: 订舱确认<BR/>航站名称: 上海浦东<BR/>航班号: CK261<BR/>日期: 2013-10-11<BR/>时间: 23:40<BR/>状态描述: 货物已订妥指定航班的舱位,计划从 上海浦东 运往 桃源 航班计划起飞时间 2340, 计划到达时间 0105<BR/>件数: 2<BR/>重量: 348]]></TRACE_DATA> 
   <OP_TIME>2013-11-15 13:47</OP_TIME> 
   </TraceTranslate>
<TraceTranslate>
   <AWB_CODE>112-04990930</AWB_CODE> 
   <FLIGHT_NO>CK261</FLIGHT_NO> 
   <FLIGHT_DATE>2013-10-11 23:44</FLIGHT_DATE> 
   <SHIMPENT_PIECE>2</SHIMPENT_PIECE> 
   <SHIMPENT_WEIGHT>333</SHIMPENT_WEIGHT> 
   <CARGO_CODE>RCS</CARGO_CODE> 
   <CARGO_NAME>货交航空公司指定货栈</CARGO_NAME> 
   <CARGO_ENNAME /> 
   <TRACE_CODE>2521456</TRACE_CODE> 
   <TRACE_TIME>2013-10-11 20:37</TRACE_TIME> 
   <TRACE_LOCATION>上海浦东</TRACE_LOCATION> 
   <AIRPORT_DEP>上海浦东</AIRPORT_DEP> 
   <AIRPORT_LAND>桃源</AIRPORT_LAND> 
   <ORIGIN_AIRPORT>上海浦东</ORIGIN_AIRPORT> 
   <DESTINATION_AIRPORT>桃源</DESTINATION_AIRPORT> 
   <STARDARD_DATA>货交航空公司指定货栈(RCS):在上海浦东机场,航空公司于10-11 20:37 确认收到2件货物(重量为333KG)</STARDARD_DATA> 
   <TRACE_DATA><![CDATA[状态名称: 收货<BR/>航站名称: 上海浦东<BR/>航班号: <BR/>日期: 2013-10-11<BR/>时间: 20:37<BR/>状态描述: 从发货人或其代理 SZT 手中收到出港货物和文件<BR/>件数: 2<BR/>重量: 333]]></TRACE_DATA> 
   <OP_TIME>2013-11-15 13:47</OP_TIME> 
 </TraceTranslate>
 </TraceTranslates>
 </ResultData>
   </ServiceResult>






<%
sSourcePath = Server.MapPath("note.xml")

Set oDoc = CreateObject("Msxml2.DOMDocument")
With oDoc
.async = False
.validateOnParse = False
.preserveWhiteSpace = False
.resolveExternals = False
.load sSourcePath
If .parseError.errorCode <> 0 Then
sErrMsg = .parseError.errorCode & "
[解决办法]
" & .parseError.srcText & "
[解决办法]
" & .parseError.reason
Response.Write sErrMsg
Response.End
End If
End With
Set oNodes = oDoc.selectNodes("//TraceTranslates//TRACE_DATA")
For i = 0 To oNodes.length-1
Response.Write oNodes(i).text
Next
Set oNodes = Nothing
Set oDoc = Nothing
%>

热点排行