私は XML と XSLT に不慣れで、誰かがここで役立つかどうか疑問に思っています:
以下のデータを含む XML フォームがあります
<?xml version="1.0" encoding="utf-8"?>
<uformrecords>
<uformrecord>
<state>Approved</state>
<created>2009-11-13T10:01:55</created>
<updated>2009-11-13T10:01:55</updated>
<id>119ecc43-df79-46e1-9020-b2e27e239175</id>
<ip>127.0.0.1</ip>
<pageid>0</pageid>
<memberkey></memberkey>
<fields>
<name record="119ecc43-df79-46e1-9020-b2e27e239175" sortorder="0">
<key>2295187e-0345-4260-a406-eabcc1e774e2</key>
<fieldKey>e6157c93-0b54-4415-b7ba-5c7c2c953b70</fieldKey>
<caption>Name</caption>
<datatype>String</datatype>
<values>
<value><![CDATA[My Name]]></value>
</values>
</name>
<email record="119ecc43-df79-46e1-9020-b2e27e239175" sortorder="1">
<key>a92875a8-938d-4ba0-990a-59a3518ce62c</key>
<fieldKey>d8b10ffb-c437-4a44-8df6-01e6af5ac26f</fieldKey>
<caption>Email</caption>
<datatype>String</datatype>
<values>
<value><![CDATA[pph@testdomain.com]]></value>
</values>
</email>
</fields>
</uformrecord>
</uformrecords>
ページには、いくつかのレコードを取得するために以下の XSLT コードがあります
<ul> <xsl:for-each select="umbraco.contour:GetRecordsFromPage($currentPage/@id)//uformrecord">
<xsl:sort select="created" order="ascending"/>
<li>
A record with id id <xsl:value-of select="id"/> with the state set to <xsl:value-of select="state"/> i
was created on <xsl:value-of select="umbraco.library:LongDate(created)"/>
</li>
</xsl:for-each>
</ul>
これはうまくいきますが、キャプションを追加すると
<xsl:value-of select="caption"/>
フィールドは空です。ノードを反復処理する必要がある可能性があるため、空だと思います。だから私はレコードを反復処理するための以下のコードを持っています
<xsl:for-each select="umbraco.contour:GetRecord($id)/uformrecord/fields/child::*">
<xsl:sort select="caption" order="ascending"/>
<h4>
<xsl:value-of select=" caption"/>
</h4>
</xsl:for-each>
しかし、IDが宣言されていないというエラーがあります-IDを宣言すると、適切なGUID形式ではないというエラーが発生します。この問題を乗り越えて「キャプション」要素を表示する方法を誰かアドバイスしてもらえますか?
ありがとう