我是 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 格式的错误。谁能建议如何克服这个问题并显示“标题”元素?
谢谢