2015-04-24 3 views
0

Я не могу понять, почему мой код не работает, единственный способ получить любой xsl для рендеринга - это использовать. оператор при использовании value-of select, который просто распечатывает каждое значение моего xml. Если вы измените значение select = "hey" на "." он будет показывать все, но когда я пытаюсь просто выбрать конкретный элемент, я ничего не получаю.XSL-значение select не работает

Это код, я работаю с:

<?xml version="1.0" encoding="UTF-8"?> 
 
<!-- 
 
    XML Midterm Project 
 
    New York Knicks 
 

 
    Author: Nick Johnson 
 
    Date: 3/15/2015 
 

 
    Filename:   roster.xml 
 
    Supporting File: roster.xsd 
 
--> 
 

 

 

 
<!-- roster vocabulary --> 
 

 
<?xml-stylesheet type="text/xsl" href="rosterxsl.xsl"?> 
 
<roster xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
    xmlns="http://example.com/XMLProject/roster" 
 
    xsi:SchemaLocation="http://example.com/XMLProject roster.xsd"> 
 
    <hey>TEST</hey> 
 

 
    \t \t <player lineup="starter"> 
 
    \t \t \t <fName>Carmelo</fName> 
 
    \t \t \t <lName>Anthony</lName> 
 
    \t \t \t <age>30</age> 
 
    \t \t \t <number>7</number> 
 
\t \t \t <position>Foward</position> 
 
    \t \t \t <college>Syracuse</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="reserve"> 
 
    \t \t \t <fName>Quincy</fName> 
 
    \t \t \t <lName>Acy</lName> 
 
    \t \t \t <age>24</age> 
 
    \t \t \t <number>4</number> 
 
\t \t \t <position>Foward</position> 
 
    \t \t \t <college>Baylor</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="reserve"> 
 
    \t \t \t <fName>Cole</fName> 
 
    \t \t \t <lName>Aldrich</lName> 
 
    \t \t \t <age>26</age> 
 
    \t \t \t <number>45</number> 
 
\t \t \t <position>Center</position> 
 
    \t \t \t <college>Kansas</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="reserve"> 
 
    \t \t \t <fName>Lou</fName> 
 
    \t \t \t <lName>Amundson</lName> 
 
    \t \t \t <age>32</age> 
 
    \t \t \t <number>21</number> 
 
\t \t \t <position>Center</position> 
 
    \t \t \t <college>Nevada</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="starter"> 
 
    \t \t \t <fName>Andrea</fName> 
 
    \t \t \t <lName>Bargnani</lName> 
 
    \t \t \t <age>29</age> 
 
    \t \t \t <number>77</number> 
 
\t \t \t <position>Center</position> 
 
    \t \t \t <college>Italy College</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="starter"> 
 
    \t \t \t <fName>Jose</fName> 
 
    \t \t \t <lName>Calderon</lName> 
 
    \t \t \t <age>33</age> 
 
    \t \t \t <number>3</number> 
 
\t \t \t <position>Point Guard</position> 
 
    \t \t \t <college>Spain College</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="reserve"> 
 
    \t \t \t <fName>Cleanthony</fName> 
 
    \t \t \t <lName>Early</lName> 
 
    \t \t \t <age>23</age> 
 
    \t \t \t <number>17</number> 
 
\t \t  <position>Foward</position> 
 
    \t \t \t <college>Wichita State</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="starter"> 
 
    \t \t \t <fName>Langston</fName> 
 
    \t \t \t <lName>Galloway</lName> 
 
    \t \t \t <age>23</age> 
 
    \t \t \t <number>2</number> 
 
\t \t \t <position>Guard</position> 
 
    \t \t \t <college>St. Joseph's</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="reserve"> 
 
    \t \t \t <fName>Tim</fName> 
 
    \t \t \t <lName>Hardaway</lName> 
 
    \t \t \t <age>22</age> 
 
    \t \t \t <number>5</number> 
 
\t \t \t <position>Guard</position> 
 
    \t \t \t <college>Michigan</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="reserve"> 
 
    \t \t \t <fName>Shane</fName> 
 
    \t \t \t <lName>Larkin</lName> 
 
    \t \t \t <age>22</age> 
 
    \t \t \t <number>0</number> 
 
\t \t  <position>Point Guard</position> 
 
    \t \t \t <college>Miami</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="reserve"> 
 
    \t \t \t <fName>Alexey</fName> 
 
    \t \t \t <lName>Shved</lName> 
 
    \t \t \t <age>26</age> 
 
    \t \t \t <number>1</number> 
 
\t \t \t <position>Guard</position> 
 
    \t \t \t <college>Russian College</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="starter"> 
 
    \t \t \t <fName>Jason</fName> 
 
    \t \t \t <lName>Smith</lName> 
 
    \t \t \t <age>29</age> 
 
    \t \t \t <number>14</number> 
 
\t \t \t <position>Foward</position> 
 
    \t \t \t <college>Colorado State</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="reserve"> 
 
    \t \t \t <fName>Lance</fName> 
 
    \t \t \t <lName>Thomas</lName> 
 
    \t \t \t <age>26</age> 
 
    \t \t \t <number>42</number> 
 
\t \t \t <position>Foward</position> 
 
    \t \t \t <college>Duke</college> 
 
    \t \t </player> 
 
\t \t 
 
\t \t <player lineup="reserve"> 
 
    \t \t \t <fName>Travis</fName> 
 
    \t \t \t <lName>Wear</lName> 
 
    \t \t \t <age>24</age> 
 
    \t \t \t <number>6</number> 
 
\t \t \t <position>Foward</position> 
 
    \t \t \t <college>UCLA</college> 
 
    \t \t </player> 
 

 
    \t </roster>

<?xml version="1.0" encoding="UTF-8" ?> 
 
<!-- 
 
    New Perspectives on XML, 3rd Edition 
 
    Tutorial 6 
 
    Case Problem 1 
 

 
    Voter Web Style Sheet 
 
    Author: Nick Johnson 
 
    Date: 4/23/2015 
 
    Filename:   teamxsl.xsl 
 
    Supporting Files: 
 
--> 
 

 

 
<xsl:stylesheet version="1.0" 
 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
 

 
    <xsl:output method="html" 
 
     doctype-system="about:legacy-compat" 
 
     encoding="UTF-8" 
 
     indent="yes" /> 
 
\t 
 

 
    <xsl:template match="/"> 
 
     <html> 
 
     <head> 
 
      <title>New York Knicks</title> 
 
      <link href="teamstyle.css" rel="stylesheet" type="text/css" /> 
 
     </head> 
 

 
     <body> 
 
      <div id="header"> 
 
       <img src="headerimage.jpg" /> 
 
       <p>hey</p> 
 
       <xsl:value-of select="hey" /> 
 

 
      </div> 
 
      <xsl:for-each select="roster/player"> 
 
        <xsl:sort select="fName" /> 
 
        <table> 
 
         
 
        <thead> 
 
         <tr> 
 
          <th>First Name</th> 
 
          <th>Last Name</th> 
 
          <th>Age</th> 
 
          <th>Number</th> 
 
          <th>Position</th> 
 
          <th>College</th> 
 
          
 
         </tr> 
 
        </thead> 
 
        <tbody> 
 
         <xsl:apply-templates select="roster/player" > 
 
          
 
         </xsl:apply-templates> 
 
        </tbody> 
 
        </table> 
 
      </xsl:for-each> 
 
     </body> 
 
     </html> 
 
      
 
    </xsl:template> 
 

 
    <xsl:template match="player"> 
 
     <tr> 
 
     <td><xsl:value-of select="fName" /></td> 
 
     <td><xsl:value-of select="lName" /></td> 
 
     <td><xsl:value-of select="age"/></td> 
 
     <td><xsl:value-of select="position" /></td> 
 
     <td><xsl:value-of select="number" /></td> 
 
     <td><xsl:value-of select="college" /></td> 
 
      
 
     </tr> 
 
    </xsl:template> 
 

 

 

 
    
 
    
 

 
</xsl:stylesheet>

+0

@ Майкл Кей сказал все. См. [XSLT с источником XML, который имеет пространство имен по умолчанию, установленное в xmlns] (http://stackoverflow.com/questions/1344158/xslt-with-xml-source-that-has-a-default-namespace-set-to- xmlns), например. Это также стоит прочитать: http://www.jenitennison.com/2007/07/01/the-perils-of-default-namespaces.html – potame

ответ

0

Это проблема # 1 сообщается здесь с XSLT (примерно один вопрос в день): ваш XML находится в пространстве имен, но ваши шаблоны пути/шаблоны поиска ищут элементов в пространстве имен.