2013-03-07 91 views
0

本质上我的XSLT是没有达到标准,本场是内轮廓的下拉菜单,我得到它,像这样:一把umbraco轮廓,1.1.12 - 下拉列表中选择的价值

<xsl:value-of select="$records//fields/child::* [name() = 'countryoforigin']"/> 

然而这带回值我不想:

3c7607b3-714c-47ec-8863-3919c6bdcfc9dc2c66c2-fa57-4e98-b26a-89b7ed041300#originStringUnited国Kingdomld

我只希望值,WH ich在这种情况下是“英国”。

其他字段是输入字段,带回价值,像这样:

<xsl:value-of select="$records//fields/child::* [name() = 'position']/.//value"/> 

但是当应用到下拉列表(名称=“countryoforigin”)是相同的 - 它不工作

任何想法?

Ĵ

更多片断

XML:

<state>Approved</state> 
    <created>2013-03-07T11:42:47</created> 
    <updated>2013-03-07T11:42:36</updated> 
    <id>325c5b27-9f0f-443b-89a2-af82bfd33356</id> 
    <ip>37.152.45.58</ip> 
    <pageid url="/" name="Home">1051</pageid> 
    <memberkey email="" login=""></memberkey> 
    <fields> 
     <position record="325c5b27-9f0f-443b-89a2-af82bfd33356" sortorder="3" pageindex="0" fieldsetindex="0"> 
      <key>ae7f2030-1a29-4b5a-9967-2c0c939a32cb</key> 
      <fieldKey>08d208c3-3c49-48ca-ac2a-5a50560a8351</fieldKey> 
      <caption>#position</caption> 
      <datatype>String</datatype> 
      <values> 
       <value><![CDATA[aM]]></value> 
      </values> 
     </position> 
     <name record="325c5b27-9f0f-443b-89a2-af82bfd33356" sortorder="0" pageindex="0" fieldsetindex="0"> 
      <key>d64d51e4-b663-4279-9e5b-473d47a8751b</key> 
      <fieldKey>af70f6b5-7b5c-4ac4-9643-1028a62d580a</fieldKey> 
      <caption>#name</caption> 
      <datatype>String</datatype> 
      <values> 
       <value><![CDATA[amTest4]]></value> 
      </values> 
     </name> 
     <countryoforigin record="325c5b27-9f0f-443b-89a2-af82bfd33356" sortorder="4" pageindex="0" fieldsetindex="0"> 
      <key>4eb2aeaf-2b21-498f-ba38-61d20da66339</key> 
      <fieldKey>dc2c66c2-fa57-4e98-b26a-89b7ed041300</fieldKey> 
      <caption>#country of origin</caption> 
      <datatype>String</datatype> 
      <values> 
       <value key="fd329420-b331-4a32-bd15-1cf2ca333c1f"><![CDATA[United Kingdom]]></value> 
      </values> 
     </countryoforigin> 
     <sendmemail record="325c5b27-9f0f-443b-89a2-af82bfd33356" sortorder="0" pageindex="0" fieldsetindex="1"> 
      <key>41b02cfb-ff5b-41ff-beed-6fbfdc7ad900</key> 
      <fieldKey>f81d8b63-86ea-4609-9925-f4f9ae20b82f</fieldKey> 
      <caption>#send me mail</caption> 
      <datatype>Bit</datatype> 
      <values> 
       <value><![CDATA[True]]></value> 
      </values> 
     </sendmemail> 
     <email record="325c5b27-9f0f-443b-89a2-af82bfd33356" sortorder="2" pageindex="0" fieldsetindex="0"> 
      <key>7763ac53-1569-43b4-8bab-c14bb30d2874</key> 
      <fieldKey>cccb1f0f-ff81-4a25-8d37-f3c7be6553f0</fieldKey> 
      <caption>#email</caption> 
      <datatype>String</datatype> 
      <values> 
       <value><![CDATA[[email protected]]]></value> 
      </values> 
     </email> 
     <jobtitle record="325c5b27-9f0f-443b-89a2-af82bfd33356" sortorder="1" pageindex="0" fieldsetindex="0"> 
      <key>4a8d98bb-407a-428b-a47c-c352653f3836</key> 
      <fieldKey>502ceee3-4025-41dc-a6c4-a95825f8a1fb</fieldKey> 
      <caption>#job title</caption> 
      <datatype>String</datatype> 
      <values> 
       <value><![CDATA[amTest4]]></value> 
      </values> 
     </jobtitle> 
    </fields> 
</uformrecord> 

代码片段:

<xsl:param name="currentPage"/> 
<xsl:param name="records" /> 
<table> 
    <tr> 
     <td width="26%"> 
      <font face="arial" color="#333333" size="2"><strong><xsl:value-of select="umbraco.library:GetDictionaryItem('position')"/>:</strong></font> 
     </td> 
     <td width="74%"><font face="arial"><xsl:value-of select="$records//fields/child::* [name() = 'position']/.//value"/></font> 
     </td> 
    </tr>  
</table> 
<p> 
     <font face="arial" color="#333333" size="2"> 
      <strong> 
       Country of origin 
       <br/> 

       <xsl:value-of select="$records//fields/child::* [name() = 'countryoforigin']"/> 

      </strong> 
     </font> 
    </p> 
+0

您能向我们展示更多的XSLT吗?例如,'xsl:value-of'之前的部分。如果你有一个与$记录对应的XML的例子,那也是有帮助的。 – JLRishe 2013-03-07 15:01:58

+0

是_exactly_输入XML,未修改?您在问题顶部显示的输出似乎包含一些不在源XML中的“Id”文本。 – JLRishe 2013-03-08 08:25:39

回答

0

好了,就像与其他价值,这应该做的工作:

<xsl:value-of select="$records//fields/*[name() = 'countryoforigin']//value"/> 
+0

唉,恐怕不会加上其他属性,例如位置使用这个约定:'' - 我没有看到什么与下拉菜单不同? – 2013-03-07 15:55:46

+0

你可以试试上面修改的代码吗?下拉的原始XPath与其他值的XPath不同。后者最后拥有'/.//价值',前者则没有。我试图清理路径中的多余东西,但听起来像没有奏效。您是否可能通过删除某些名称空间声明('xmlns =“...”')来“清理”您发布的源XML? – JLRishe 2013-03-08 08:23:23

+0

我只是再次尝试,它的工作,也许某种缓存!谢谢您的帮助! – 2013-03-08 14:43:36