基于 XML 节点对 XML 文件进行排序 &使用 XSLT 的 XML 注释 [英] Sorting XML file based on XML nodes & XML comments using XSLT
本文介绍了基于 XML 节点对 XML 文件进行排序 &使用 XSLT 的 XML 注释的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要帮助根据 xml 节点对 XML 文件进行排序,还有一件事是我必须放置与该节点相对应的注释标签.
I need help in sorting an XML file based on xml nodes and ONE more thing is i have to place their comment tags corresponding to that node.
例如:输入 XML 文件是
For Example: Input XML File is
<?xml version="1.0" encoding="UTF-8"?>
<!-- catalog main -->
<catalog>
<!-- first book id -->
<book id="bk101">
<!-- author name 1 -->
<author>Gambardella, Matthew</author>
<!-- title name 1 -->
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<!-- price 1 -->
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<Book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</Book>
<!-- languages -->
<Languages>
<!-- java comment -->
<java>Galos, Mike</java>
<c>Visual Studio 7: A Comprehensive Guide</c>
<!-- dotnet comment -->
<dotnet>Computer</dotnet>
<!-- description -->
<description>Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.</description>
</Languages>
<!-- ABC book -->
<ABC>
<!-- ABC author -->
<author1>Galos, Mike</author1>
<title1>Visual Studio 7: A Comprehensive Guide</title1>
<!-- ABC genre -->
<genre1>Computer</genre1>
<price1>49.95</price1>
<publish_date>2001-04-16</publish_date>
<!-- ABC description -->
<description>Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.</description>
</ABC>
<!-- ABC1 book -->
<abc1>
<!-- ABC1 author -->
<author1>Galos, Mike</author1>
<title1>Visual Studio 7: A Comprehensive Guide</title1>
<!-- ABC1 genre -->
<genre1>Computer</genre1>
<price1>49.95</price1>
<publish_date>2001-04-16</publish_date>
<!-- ABC1 description -->
<description>Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.</description>
</abc1>
</catalog>
<小时>
预期的输出 XML 文件应该是:
EXPECTED OUTPUT XML FILE SHOULD BE:
<?xml version="1.0" encoding="UTF-8"?>
<!-- catalog main -->
<catalog>
<!-- ABC book -->
<ABC>
<!-- ABC author -->
<author1>Galos, Mike</author1>
<!-- ABC description -->
<description>Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.</description>
<!-- ABC genre -->
<genre1>Computer</genre1>
<price1>49.95</price1>
<publish_date>2001-04-16</publish_date>
<title1>Visual Studio 7: A Comprehensive Guide</title1>
</ABC>
<!-- ABC1 book -->
<abc1>
<!-- ABC1 author -->
<author1>Galos, Mike</author1>
<!-- ABC1 description -->
<description>Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.</description>
<!-- ABC1 genre -->
<genre1>Computer</genre1>
<price1>49.95</price1>
<publish_date>2001-04-16</publish_date>
<title1>Visual Studio 7: A Comprehensive Guide</title1>
</abc1>
<!-- first book id -->
<book id="bk101">
<!-- author name 1 -->
<author>Gambardella, Matthew</author>
<description>An in-depth look at creating applications
with XML.</description>
<genre>Computer</genre>
<!-- price 1 -->
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<!-- title name 1 -->
<title>XML Developer's Guide</title>
</book>
<Book id="bk102">
<author>Ralls, Kim</author>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<title>Midnight Rain</title>
</Book>
<!-- languages -->
<Languages>
<c>Visual Studio 7: A Comprehensive Guide</c>
<!-- description -->
<description>Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.</description>
<!-- dotnet comment -->
<dotnet>Computer</dotnet>
<!-- java comment -->
<java>Galos, Mike</java>
</Languages>
</catalog>
推荐答案
看来我已经通过额外的实现解决了这个问题..
以下是新代码:-<代码>
It seems I have resolved this issue with an additional implementation..
Below is the new code:-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:template match="*|@*">
<xsl:copy-of select="preceding-sibling::node()[1]/self::comment()"/>
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="node()">
<xsl:sort select="name()"/>
<xsl:sort select="@*"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
这篇关于基于 XML 节点对 XML 文件进行排序 &使用 XSLT 的 XML 注释的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文