2012-04-04 38 views
1

我已經失去了很多時間試圖找出如何XSLT的工作XSLT和XPath不對勁

我有這樣的XML

<?xml version="1.0" encoding="UTF-8"?> 

<lvl:map xsi:schemaLocation="http://www.ohmeudeus.com lvlMl-v2.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:lvl="http://www.ohmeudeus.com"> 
    <name>String</name> 
    <myColor>fffffffff</myColor> 
</lvl:map> 

,現在我想,使HTML,通過使用XSLT與字串

所以我的XSLT是一樣的東西

<?xml version="1.0" encoding="UTF-8"?> 
    <xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:lvl="http://www.ohmeudeus.com lvlMl-v2.xsd"> 
<xsl:template match="lvl:map"> 
    <html> 
     <head> 
      <title> 
       normal title 
      </title> 
      <link href="style.css" rel="stylesheet" type="text/css"/> 
     </head> 
     <body> 
      The name is <xsl:value-of select="name"/> 
     </body> 
    </html> 
</xsl:template> 

</xsl:stylesheet> 

其結果讓我回南都e和顏色 這樣的:

字符串fffffffff

我在做什麼錯在這裏我不明白......請幫我...

此外,我接受你有什麼祕訣幫我找到bug

回答

4

這是因爲在你的XML中的xmlns:

xmlns:lvl="http://www.ohmeudeus.com" 

不匹配您的XSLT中的xmlns:

xmlns:lvl="http://www.ohmeudeus.com lvlMl-v2.xsd" 
1

我發現了2個問題。

  • 關閉</xsl:stylesheet>缺失。
  • <xmlns:lvl>不應該有模式位置,只有命名空間。

解決此問題後,您應該得到名稱是字符串

+0

關於樣式表閉包它是一個堆棧溢出粘貼錯誤。我從xmlns:lvl中刪除了lvlMl-v2.xsd,並沒有改變任何東西,但是它的真實性是一個錯誤 – 2012-04-04 18:11:58

0

當我運行與固定對發佈XML我命名空間中的貼出的XSLT得到以下。這不是必需的輸出嗎?

<?xml version="1.0" encoding="UTF-8"?> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:lvl="http://www.ohmeudeus.com"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <title>normal title</title> 
     <link href="style.css" rel="stylesheet" type="text/css" /> 
    </head> 
    <body>The name is String</body> 
</html> 
+0

*「當我運行公佈的XLST **時,對於發佈的XML修復了名稱空間**,我得到以下內容。 「* - 命名空間是唯一的問題。 – 2012-04-05 01:27:22