我有一个XML文件,格式如下:
<CodeSnippet>
<Code tag="class eclipse">
<Snippet>sample</Snippet>
<TimeStamp>05/11/2014 13:50:36</TimeStamp>
</Code>
<Code tag="button java">
<Snippet>Sample code</Snippet>
<TimeStamp>05/11/2014 12:36:36</TimeStamp>
</Code>
.
.
.
</CodeSnippet>
我想知道,如何检索根节点“CodeSnippet”的最后5个子节点,并在标签“Snippet”中显示文本。
答案 0 :(得分:1)
了解如何在java中使用XPATH表达式http://howtodoinjava.com/2012/11/07/how-to-work-with-xpaths-in-java-with-examples/
针对您的特定问题,使用xpath表达式//CodeSnippet/Snippet
获取所有代码段节点。完成后,从nodes.length运行for循环到nodes.length-5。
答案 1 :(得分:1)
尝试类似:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:template match="/">
<root>
<xsl:for-each select="CodeSnippet/Code[position() > last() - 5]">
<xsl:copy-of select="Snippet"/>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>
您没有说出输出的确切格式应该是什么。以上将产生以下形式的XML文档:
<?xml version="1.0" encoding="utf-8"?>
<root>
<Snippet>V</Snippet>
<Snippet>W</Snippet>
<Snippet>X</Snippet>
<Snippet>Y</Snippet>
<Snippet>Z</Snippet>
</root>
答案 2 :(得分:0)
这是使用三种不同技术的XML Parsing for Java的优秀教程。在你的情况下,我会推荐你DOM选项,即使我看到SAX是最简单的。只是尝试为您的案例进行更改。
http://www.javacodegeeks.com/2013/05/parsing-xml-using-dom-sax-and-stax-parser-in-java.html
有一个很好的代码!
答案 3 :(得分:0)
如果您可以使用XPath 2.0处理器,则可以使用以下XPath:
subsequence(//Snippet,count(//Snippet)-5)