【问题标题】:Processing of xml data inside coldfusion在coldfusion中处理xml数据
【发布时间】:2016-04-21 19:26:33
【问题描述】:

处理数据后我可以设置xml值

<cfoutput>#xmlResults#</cfoutput>

输出示例:

<?xml version="1.0" encoding="UTF-8"?>
<shiporder orderid="889923"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="shiporder.xsd">
    <orderperson>John Smith</orderperson>
    <shipto>
        <name>Ola Nordmann</name>
        <address>Langgt 23</address>
        <city>4000 Stavanger</city>
        <country>Norway</country>
    </shipto>
    <item>
        <title>Empire Burlesque</title>
        <note>Special Edition</note>
        <quantity>1</quantity>
        <price>10.90</price>
    </item>
    <item>
        <title>Hide your heart</title>
        <quantity>1</quantity>
        <price>9.90</price>
    </item>
</shiporder>

如何使用coldfusion单独使用详细信息?(我想在我的应用程序中使用标题值。)

【问题讨论】:

    标签: coldfusion coldfusion-9 coldfusion-8 coldbox


    【解决方案1】:

    解析后,可以使用XPath到search,和/或直接引用xml文档中的元素:

    <cfset doc = XmlParse(xmlResults)>
    <cfloop index="node" array="#XmlSearch(doc, '//item')#">
        <p>
            #node.title.xmlText#
        </p>
    </cfloop>
    

    【讨论】:

    • 谢谢。如果 里面有不同的标签,那该怎么办?
    • 如果 中没有标题元素,上面的代码将会崩溃。在直接引用它之前,您最好确保它存在。
    • 如果我尝试访问 值,会发生什么?它不在第二个 中。
    【解决方案2】:

    您可能知道 xml 的格式,并且可以遍历项目

    <cfset xmlParsed = xmlparse(xmlResults) >
    
    <cfoutput>
    
    <cfloop from="1" to="#arraylen(xmlParsed.shiporder.item)#" index="i">   
    
            title: #xmlParsed.shiporder.item[i].title.xmltext#<br>      
    
            <cfif structkeyExists(xmlParsed.shiporder.item[i],"note")>
                note: #xmlParsed.shiporder.item[i].note# <br> 
            </cfif>     
    
            <br>
    </cfloop>
    
    </cfoutput>
    

    【讨论】:

      【解决方案3】:

      <cfsavecontent variable="variable.xmlResults">
      <?xml version="1.0" encoding="UTF-8"?>
      <shiporder orderid="889923"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="shiporder.xsd">
          <orderperson>John Smith</orderperson>
          <shipto>
              <name>Ola Nordmann</name>
              <address>Langgt 23</address>
              <city>4000 Stavanger</city>
              <country>Norway</country>
          </shipto>
          <item>
              <title>Empire Burlesque</title>
              <note>Special Edition</note>
              <quantity>1</quantity>
              <price>10.90</price>
          </item>
          <item>
              <title>Hide your heart</title>
              <quantity>1</quantity>
              <price>9.90</price>
          </item>
      </shiporder>
      </cfsavecontent>
      <cfset variables.myXmlArray = xmlparse(trim(variable.xmlResults))>
      
      <cfset variables.responseNodesItem = XMLSearch(variables.myXmlArray,"//*[ local-name() = 'item' ]") />
      <cfset variables.title = variables.responseNodesItem[1].title["XmlText"]>	
      <cfdump var="#variables.myXmlArray#">
      <cfdump var="#variables.responseNodesItem#">
      <cfdump var="#variables.title#">
      <cfabort>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-21
        • 1970-01-01
        • 2012-12-17
        • 2017-10-18
        • 2013-10-06
        • 2013-03-08
        • 1970-01-01
        • 2012-07-09
        相关资源
        最近更新 更多