遍历结构数组并将值放入xml

时间:2018-09-17 00:35:47

标签: xml coldfusion

我有一个购物车,商品值存储在结构数组中。这些值将传递到xml中。我想遍历xml。我知道如何遍历结构和数组,但是如何在XML中填充值?

lineitem将是我需要循环的那个。

<lineItems>
  <lineItem>
    <itemId>1</itemId>
    <name>vase</name>
    <description>Cannes logo </description>
    <quantity>18</quantity>
    <unitPrice>45.00</unitPrice>
  </lineItem>
</lineItems>

1 个答案:

答案 0 :(得分:-1)

我希望您想在lineItem中循环xml数据,并且xml数据如上面所提到的那样位于savecontent中,

<cfsavecontent variable="myXmlData">
    <lineItems>
        <lineItem>
            <itemId>1</itemId>
            <name>vase</name>
            <description>Cannes logo </description>
            <quantity>18</quantity>
            <unitPrice>45.00</unitPrice>
      </lineItem>
      <lineItem>
            <itemId>2</itemId>
            <name>vase2</name>
            <description>Cannes logo2 </description>
            <quantity>20</quantity>
            <unitPrice>90.00</unitPrice>
      </lineItem>
    </lineItems>
</cfsavecontent>

您的xml数据位于savecontent中,因此您首先要解析内容,然后根据您的标签可以执行搜索操作。然后您可以对xmlChildren进行循环,例如itemId,Name,quantity等。

<cfoutput>
    <cfset myXmlContent = XMLParse(myXmlData)>
    <cfset mySearchContent = xmlsearch(myXmlContent,'lineItems/lineItem')>
    <cfloop from="1" to="#arraylen(mySearchContent)#" index="i">
        <cfloop from="1" to="#arraylen(mySearchContent[i].XmlChildren)#" index="j">
            #mySearchContent[i].XmlChildren[j].xmlName# --- #mySearchContent[i].XmlChildren[j].xmlText#<br/>
        </cfloop>
    </cfloop>
</cfoutput>

请确保,这里的xml数据位于savecontent中,因此我们需要解析和搜索它,然后进行循环。但是,如果您的xml内容另存为某些xml文件,则无需解析和搜索它。您可以使用

直接读取该文件

然后,您可以使用

获取订单项值的列表
 <cffile action='read' variable='myXml'>
    <cfset myData= myxml.lineItem >
    <cfloop from="1" to="#arraylen(myData.XmlChildren)#" index="i">

      Do your logic here. !
    <cfloop>

希望对您有所帮助。谢谢。

相关问题