1

Coldfusion を使用して xml ファイルからデータを抽出する最良の方法を見つけようとしています。xml ファイルは比較的単純ですが、この問題を解決してください。XML データは次のようになります。

<recordname>
<biols>Perennial </biols>
<biomd>
common </biomd>
<catcn>Tibetan Flora Images</catcn>
<catot>Photo</catot>
<darfm>Araliaceae</darfm>
<dargn>Aralia</dargn>
<darsn>Aralia apioides</darsn>
<comnm>qing ye long yan du he</comnm>
<mulmm0>
<mulmm>
<irn>10221626</irn>
</mulmm>
<mulmm>
<irn>10221629</irn>
</mulmm>
<mulmm>
<irn>10221631</irn>
</mulmm>
<mulmm>
<irn>10221633</irn>
</mulmm>
<mulmm>
<irn>10221636</irn>
</mulmm>
</mulmm0>
</record>

各 mulmm irn を、そのレコードに含まれる関連する親情報を含むレコードとして返したいと思います。これにより、irn を含む 5 つのレコードがあり、各レコードにレコード名情報が含まれます。続行する最良の方法は何ですか?

簡単な質問で申し訳ありませんが、何らかの理由でこれが私を困惑させています。ご協力いただきありがとうございます!

4

1 に答える 1

2

それがあなたが望むものかどうかはわかりませんが、ここに私の2セントがあります:

<cfset myDoc ="<recordname>
<biols>Perennial </biols>
<biomd>
common </biomd>
<catcn>Tibetan Flora Images</catcn>
<catot>Photo</catot>
<darfm>Araliaceae</darfm>
<dargn>Aralia</dargn>
<darsn>Aralia apioides</darsn>
<comnm>qing ye long yan du he</comnm>
<mulmm0>
<mulmm>
<irn>10221626</irn>
</mulmm>
<mulmm>
<irn>10221629</irn>
</mulmm>
<mulmm>
<irn>10221631</irn>
</mulmm>
<mulmm>
<irn>10221633</irn>
</mulmm>
<mulmm>
<irn>10221636</irn>
</mulmm>
</mulmm0>
</recordname>">

<cfset myXML = XMLParse(myDoc)>

<cfset numRCItems = ArrayLen(myXML.recordname.XMLChildren)>
<cfset numMulmmItems = ArrayLen(myXML.recordname.mulmm0.XMLChildren)>

<cfset myQuery = QueryNew("irn, biols, biomd, catcn, catot, darfm, dargn, darsn, comnm") >
<cfset temp = QueryAddRow(myQuery, #numMulmmItems#)>

<cfloop index="i" from = "1" to = #numMulmmItems#>
    <cfset temp = QuerySetCell(myQuery, "irn", #myXML.recordname.mulmm0.mulmm[i].irn.XMLText#,#i#)>
        <cfloop index="j" from = "1" to = #numRCItems#>
            <cfif myXML.recordname.XMLChildren[j].XMLName IS NOT "mulmm0">
                <cfset temp = QuerySetCell(myQuery, myXML.recordname.XMLChildren[j].XMLName, #myXML.recordname.XMLChildren[j].XMLtext#,#i#)>    
            </cfif>
        </cfloop> 
</cfloop>

<cfdump var="#myQuery#" >
于 2012-07-13T10:18:44.597 に答える