无涯教程-XPath - Attribute函数

32 阅读2分钟

使用元素的 @attribute-name 可以轻松检索和检查此属性。

@name -获取属性"name"的值。

<td><xsl:value-of select="@rollno"/></td>

可以使用操作符来比较属性。

@rollno=493 -获取属性" rollno"的文本值,并与一个值进行比较。

<xsl:if test="@rollno=493">

示例

在此示例中,我们创建了一个样本XML文档 students.xml 及其样式表文档 students.xsl ,该文档使用XPath表达式。

students.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="students.xsl"?>
<class>
   <student rollno="393">
      <firstname>Dinkar</firstname>
      <lastname>Kad</lastname>
      <nickname>Dinkar</nickname>
      <marks>85</marks>
   </student>
   <student rollno="493">
      <firstname>Vaneet</firstname>
      <lastname>Gupta</lastname>
      <nickname>Vinni</nickname>
      <marks>95</marks>
   </student>
   <student rollno="593">
      <firstname>Jasvir</firstname>
      <lastname>Singh</lastname>
      <nickname>Jazz</nickname>
      <marks>90</marks>
   </student>
</class>

students.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/"> <html> <body> <h3>Details of each Students. Xpath expression="/class/student"</h3>

        </span><span class="tag">&lt;table</span><span class="pln"> </span><span class="atn">border</span><span class="pun">=</span><span class="atv">"1"</span><span class="tag">&gt;</span><span class="pln">
           </span><span class="tag">&lt;tr</span><span class="pln"> </span><span class="atn">bgcolor</span><span class="pun">=</span><span class="atv">"#9acd32"</span><span class="tag">&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">Roll No</span><span class="tag">&lt;/th&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">First Name</span><span class="tag">&lt;/th&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">Last Name</span><span class="tag">&lt;/th&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">Nick Name</span><span class="tag">&lt;/th&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">Marks</span><span class="tag">&lt;/th&gt;</span><span class="pln">
           </span><span class="tag">&lt;/tr&gt;</span><span class="pln">
				
           </span><span class="tag">&lt;xsl:for-each</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"/class/student"</span><span class="tag">&gt;</span><span class="pln">
              </span><span class="tag">&lt;tr&gt;</span><span class="pln">
                 </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"@rollno"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
                 </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"firstname"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
                 </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"lastname"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
                 </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"nickname"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
                 </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"marks"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
              </span><span class="tag">&lt;/tr&gt;</span><span class="pln">
           </span><span class="tag">&lt;/xsl:for-each&gt;</span><span class="pln">
        </span><span class="tag">&lt;/table&gt;</span><span class="pln"> 
			
        </span><span class="tag">&lt;h3&gt;</span><span class="pln">Details of Student whose roll no is 493. Xpath expression="@rollno=493"</span><span class="tag">&lt;/h3&gt;</span><span class="pln">
			
        </span><span class="tag">&lt;table</span><span class="pln"> </span><span class="atn">border</span><span class="pun">=</span><span class="atv">"1"</span><span class="tag">&gt;</span><span class="pln">
           </span><span class="tag">&lt;tr</span><span class="pln"> </span><span class="atn">bgcolor</span><span class="pun">=</span><span class="atv">"#9acd32"</span><span class="tag">&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">Roll No</span><span class="tag">&lt;/th&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">First Name</span><span class="tag">&lt;/th&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">Last Name</span><span class="tag">&lt;/th&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">Nick Name</span><span class="tag">&lt;/th&gt;</span><span class="pln">
              </span><span class="tag">&lt;th&gt;</span><span class="pln">Marks</span><span class="tag">&lt;/th&gt;</span><span class="pln">
           </span><span class="tag">&lt;/tr&gt;</span><span class="pln">
				
           </span><span class="tag">&lt;xsl:for-each</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"//student"</span><span class="tag">&gt;</span><span class="pln">
				
              </span><span class="tag">&lt;xsl:if</span><span class="pln"> </span><span class="atn">test</span><span class="pun">=</span><span class="atv">"@rollno=493"</span><span class="tag">&gt;</span><span class="pln">
                 </span><span class="tag">&lt;tr&gt;</span><span class="pln">
                    </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"@rollno"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
                    </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"firstname"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
                    </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"lastname"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
                    </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"nickname"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
                    </span><span class="tag">&lt;td&gt;&lt;xsl:value-of</span><span class="pln"> </span><span class="atn">select</span><span class="pun">=</span><span class="atv">"marks"</span><span class="tag">/&gt;&lt;/td&gt;</span><span class="pln">
                 </span><span class="tag">&lt;/tr&gt;</span><span class="pln">
              </span><span class="tag">&lt;/xsl:if&gt;</span><span class="pln">
           </span><span class="tag">&lt;/xsl:for-each&gt;</span><span class="pln">
        </span><span class="tag">&lt;/table&gt;</span><span class="pln"> 
     </span><span class="tag">&lt;/body&gt;</span><span class="pln">
  </span><span class="tag">&lt;/html&gt;</span><span class="pln">

</xsl:template> </xsl:stylesheet>

验证输出

XPath Attribute Output

参考链接

www.learnfk.com/xpath/xpath…