English 中文(简体)
quick xslt for-each question
原标题:
  • 时间:2009-11-13 19:22:21
  •  标签:
  • xml
  • xslt

Let s say I have an XML document that has this:

<keywords>
<keyword>test</keyword>
<keyword>test2</keyword>
<keyword>test3</keyword>
<keyword>test4</keyword>
</keywords>

And i want to use XSLT to print it out in HTML like this:

<ul>
<li>test</li>
<li>test2</li>
<li>test3</li>
<li>test4</li>
</ul>

What would my XSLT look like? I tried this:

<ul>
<xsl:for-each select="keywords/keyword">
    <li><xsl:value-of select="keyword"/></li>
</xsl:for-each>
</ul>

but that doesn t print out the keyword value, just a blank item.

<ul>
<xsl:for-each select="keywords">
    <li><xsl:value-of select="keyword"/></li>
</xsl:for-each>
</ul>

doesn t work (for obvious reasons), but at least it prints the first keyword!

suggestions? thanks!

最佳回答
<ul>
<xsl:for-each select="keywords/keyword">    
  <li><xsl:value-of select="text()"/></li>
</xsl:for-each>
</ul>

using text() should get you the text inside the keyword node

问题回答

I would suggest avoiding for-each here, and doing it using a template - it s more idiomatic in XSLT, especially when you have a clear one-to-one mapping:

<xsl:template match="keyword">
    <li><xsl:value-of select="."/></li>
</xsl:template>

<xsl:template match="keywords">
    <ul><xsl:apply-templates/></ul>
</xsl:template>




相关问题
how to represent it in dtd?

I have two element action and guid. guid is a required field when action is add. but when action is del it will not appear in file. How to represent this in dtd ?

.Net application configuration add xml-data

I need to add xml-content to my application configuration file. Is there a way to add it directly to the appSettings section or do I need to implement a configSection? Is it possible to add the xml ...

XStream serializing collections

I have a class structure that I would like to serialize with Xstream. The root class contains a collection of other objects (of varying types). I would like to only serialize part of the objects that ...

MS Word splits words in its XML format

I have a Word 2003 document saved as a XML in WordProcessingML format. It contains few placeholders which will be dynamically replaced by an appropriate content. But, the problem is that Word ...

Merging an XML file with a list of changes

I have two XML files that are generated by another application I have no control over. The first is a settings file, and the second is a list of changes that should be applied to the first. Main ...

How do I check if a node has no siblings?

I have a org.w3c.dom.Node object. I would like to see if it has any other siblings. Here s what I have tried: Node sibling = node.getNextSibling(); if(sibling == null) return true; else ...

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

热门标签