2013-03-07 83 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