Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取转换后的XML,然后解析来自特定节点的数据_Xml_Xslt_Asp Classic - Fatal编程技术网

获取转换后的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

我有一个XML文件,它通过XSL文件转换成XML格式,然后我想循环通过某个节点来提取它的文本。转换后,我在解析特定文本时遇到问题

 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")