获取转换后的XML,然后解析来自特定节点的数据
我有一个XML文件,它通过XSL文件转换成XML格式,然后我想循环通过某个节点来提取它的文本。转换后,我在解析特定文本时遇到问题获取转换后的XML,然后解析来自特定节点的数据,xml,xslt,asp-classic,Xml,Xslt,Asp Classic,我有一个XML文件,它通过XSL文件转换成XML格式,然后我想循环通过某个节点来提取它的文本。转换后,我在解析特定文本时遇到问题 tfmSheet = xml.responseXML.transformNode(sheet) 在For/Next循环之前,代码工作正常。我有种感觉,我错过了一个或两个步骤后,上述行,但不知道什么 <--- previous code omitted for clarity ---> Set xsl = Server.CreateObject("M
tfmSheet = xml.responseXML.transformNode(sheet)
在For/Next循环之前,代码工作正常。我有种感觉,我错过了一个或两个步骤后,上述行,但不知道什么
<--- previous code omitted for clarity --->
Set xsl = Server.CreateObject("Microsoft.XMLHTTP")
xsl.open "GET", "http://www.example.com/xsl.xsl", False
xsl.send
If xsl.status = 200 Then
Set sheet = xsl.responseXML
End If
tfmSheet = xml.responseXML.transformNode(sheet)
- Am I missing something here? -
tfmList = tfmSheet.SelectNodes("//xmldata/Orders")
For Each tfmOrder In tfmList
Set OrderDate = tfmOrder.SelectSingleNode("OrderDate")
If Not OrderDate Is Nothing Then
OrderDateText = OrderDate.text
End If
Response.write OrderDateText
Next
Response.write tfmSheet
设置xsl=Server.CreateObject(“Microsoft.XMLHTTP”)
xsl.open“GET”http://www.example.com/xsl.xsl”“错
xsl.send
如果xsl.status=200,则
Set sheet=xsl.responseXML
如果结束
tfmSheet=xml.responseXML.transformNode(工作表)
-我是不是遗漏了什么-
tfmList=tfmSheet.SelectNodes(“//xmldata/Orders”)
对于tfmList中的每个tfmOrder
设置OrderDate=tfmOrder。选择SingleNode(“OrderDate”)
如果没有,则OrderDate不算什么
OrderDateText=OrderDate.text
如果结束
Response.write OrderDateText
下一个
Response.write tfmSheet
继续这个问题
更新了转换后的XML,如下所示
<xmldata>
<Orders>
<OrderID>87709</OrderID>
<CustomerID>123456</CustomerID>
<OrderDate>6/13/2013 5:08:00 PM</OrderDate>
<PaymentMethodID>5</PaymentMethodID>
<PONum></PONum>
<ShippingMethodID>502</ShippingMethodID>
<OrderDetails>
<OrderDetailID>25676</OrderDetailID>
<OrderID>87709</OrderID>
<ProductCode>58309-SYL</ProductCode>
<ProductID>9756</ProductID>
<ProductName>ABCD</ProductName>
<ProductPrice>4.7500</ProductPrice>
<Quantity>300</Quantity>
<TotalPrice>1425.0000</TotalPrice>
</OrderDetails>
<OrderDetails>
<OrderDetailID>25677</OrderDetailID>
<OrderID>87709</OrderID>
<ProductCode>ABCDEFG</ProductCode>
<ProductID>9757</ProductID>
<ProductName>XYZ 2</ProductName>
<ProductPrice>4.7500</ProductPrice>
<Quantity>300</Quantity>
<TotalPrice>1425.0000</TotalPrice>
</OrderDetails>
</Orders>
<Orders>
<OrderID>84757</OrderID>
<CustomerID>123456</CustomerID>
<OrderDate>10/30/2012 3:02:00 PM</OrderDate>
<PaymentMethodID>5</PaymentMethodID>
<PONum></PONum>
<ShippingMethodID>141</ShippingMethodID>
<OrderDetails>
<OrderDetailID>21472</OrderDetailID>
<OrderID>84757</OrderID>
<ProductCode>58309</ProductCode>
<ProductID>9756</ProductID>
<ProductName>XYZ 12V</ProductName>
<ProductPrice>4.7500</ProductPrice>
<Quantity>160</Quantity>
<TotalPrice>760.0000</TotalPrice>
</OrderDetails>
</Orders>
<Orders>
next Order...
</Orders>
<xmldata>
87709
123456
2013年6月13日下午5:08:00
5.
502
25676
87709
58309-SYL
9756
ABCD
4.7500
300
1425
25677
87709
ABCDEFG
9757
XYZ 2
4.7500
300
1425
84757
123456
2012年10月30日下午3:02:00
5.
141
21472
84757
58309
9756
XYZ 12V
4.7500
160
760
下一个订单。。。
transformNode
返回字符串,而不是DOM文档。所以改变
tfmSheet = xml.responseXML.transformNode(sheet)
tfmList = tfmSheet.SelectNodes("//xmldata/Orders")
到
不知道您在响应中得到的是什么类型的XML,但可能需要从响应文件中定义名称空间?谢谢,现在我遇到了这个错误。。。参数数目错误或属性分配无效:“tfmList”已修复,已添加集合。。。设置tfmList=tfmSheet.SelectNodes(“//xmldata/Orders”)
Set tfmSheet = Server.CreateObject("Msxml2.DOMDocument")
xml.responseXML.transformNodeToObject sheet, tfmSheet
tfmList = tfmSheet.SelectNodes("//xmldata/Orders")