我有一個xml文件,其中有標籤,即<性別/ >它攜帶'M'或'F'作爲數據,現在我的工作是測試該值並根據值M或<Gender_Tag>Male</Gender_Tag>
或<Gender_Tag>Female</Gender_Tag>
˚F分別..我想這段代碼。它用在其他情況下工作..XSLT:如何處理測試元素的值?
回答
在模板中表達的所有相對路徑都是針對當前節點進行評估的。您的模板符合性別元素,因此性別='M'如果有任何性別的孩子名爲'性別'且值爲'M',則返回true。我想這是不是這樣的......
使用點來表示當前節點(這裏是兩性元素):
<xsl:template match="root/details/Gender">
<Gender_Tag>
<xsl:choose>
<xsl:when test=".='M'">
<xsl:text>Male</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Female</xsl:text>
</xsl:otherwise>
</xsl:choose>
</Gender_Tag>
</xsl:template>
編輯:您可以使用兩個模板太
<xsl:template match="root/details/Gender[.='M']">
<Gender_Tag>Male</Gender_Tag>
</xsl:template>
<xsl:template match="root/details/Gender[.='F']">
<Gender_Tag>Female</Gender_Tag>
</xsl:template>
它的工作夥計..非常非常感謝你..................... – 2009-11-23 09:29:54
未經測試,但可能工作...
<xsl:template match="root/details/Gender">
<xsl:if test="text()='M'">
<Gender_Tag>Male</Gender_Tag>
</xsl:if>
<xsl:if test="text()='F'">
<Gender_Tag>Female</Gender_Tag>
</xsl:if>
</xsl:template>
它不工作..我只得到一個空間在那個地方介紹..如果我嘗試測試屬性值..我可以很容易地做到這一點..但我不知道是什麼問題與比較價值元素.. – 2009-11-23 09:11:22
您需要添加您嘗試解析的XML樣本。 – Murph 2009-11-23 09:14:52
Thanx的建議.. – 2009-11-23 09:34:39
<xsl:template match="root/details/Gender">
<xsl:choose>
<xsl:when test="normalize-space(text())='M'">
<Gender_Tag>Male</Gender_Tag>
</xsl:when>
<xsl:otherwise>
<Gender_Tag>Female</Gender_Tag>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
我的例子不同之處,從Scoregraphic的兩點:
它使用XSL:選擇保證,只有一個Gender_Tag元素創建(這也意味着,如果文字是不是「M」,它始終是一個女)
使用
normalize-space()
條元素文本內容周圍的空白區域。
'文本()'不能是F和M的共同點,但使用'
感謝您的信息性建議.. :) – 2009-11-23 09:33:45
沒有看到XML它很難肯定,但我認爲你的樣品XSLT應該是:
<xsl:template match="root/details/Gender">
<xsl:if test=".='M'">
<Gender_Tag><xsl:text>Male</xsl:text></Gender_Tag>
</xsl:if>
<xsl:if test=".='F'">
<Gender_Tag><xsl:text>Female</xsl:text></Gender_Tag>
</xsl:if>
</xsl:template>
使用選擇按另一種答案會更好(雖然我認爲它應該是兩個顯式時間子句而不是時間和其他)
感謝您的建議.. – 2009-11-23 09:32:47
- 1. 處理NUnit測試中的TestCaseSource元素
- 2. 處理XSLT中的元素和屬性
- 3. JUnit如何處理單元測試?
- 4. XSLT單元測試
- 5. XSLT 2.0以特定值開頭的測試元素名稱
- 6. iOS單元測試:如何處理完成測試?
- 7. xslt:如果如何測試布爾值
- 8. 如何在使用xslt執行元素總和期間處理空元素
- 9. 如何在XSLT處理指令匹配元素?
- 10. XSLT轉換使用多個子元素來處理父元素
- 11. 如何處理DOM元素?
- 12. 如何根據其他元素值+ XSLT
- 13. XSLT刪除元素的值
- 14. 如何編寫單元測試來聲明jQuery元素的值
- 15. 單元測試的IOError異常處理
- 16. 如何處理XSLT文件?
- 17. XSLT:如何排序元素?
- 18. 如何連接元素XSLT
- 19. 如何測試AccessViolationException的處理
- 20. 如何測試中斷的POST處理
- 21. 如何測試處理ImportErrors的代碼?
- 22. XSLT交換元素值
- 23. 函數返回值的測試處理
- 24. 如何測試System.Array中的空元素
- 25. 孫子元素的XPath測試值?
- 26. 測試JavaScript殭屍事件處理程序或DOM元素
- 27. 如何處理robotium中的webview元素?
- 28. 如何處理無效的子元素?
- 29. 如何處理空的XML元素?
- 30. 如何處理Zend Framework 2中的單元測試?
格式化建議:在不使用'>'或'&lt'的情況下,按原樣編寫XML,然後使用markdown將其格式化爲代碼。 – Konamiman 2009-11-23 09:00:13
請使用代碼塊(內聯或者塊狀)以獲得更好的可讀性 – Scoregraphic 2009-11-23 09:00:32
upvote用於共享使用XLST的痛苦 – 2009-11-23 09:03:40