我开始学习更多关于使用XSLT解析XML的知识 - 但即使在研究了其他解决方案之后,我仍然无法正确编写样式表,将大型XML文件分解为基于节点的较小XML文件。
我有一个包含1500左右摘要的大型XML文件。该文件的结构如下所示:
<rows>
<row>
<ID>P-1-28-08</ID>
<ABSNO>4286</ABSNO>
<title>..article title...</title>
<topic>..article topics..</topic>
<authors>..article authors..</authors>
<abstract>..article abstract..</abstract>
<keywords>..article keywords..</keywords>
</row>
<row>
<ID>P-1-28-09</ID>
<ABSNO>4461</ABSNO>
<title>..article title...</title>
<topic>..article topics..</topic>
<authors>..article authors..</authors>
<abstract>..article abstract..</abstract>
<keywords>..article keywords..</keywords>
</row>
<row>
<ID>P-1-28-10</ID>
<ABSNO>4056</ABSNO>
<<title>..article title...</title>
<topic>..article topics..</topic>
<authors>..article authors..</authors>
<abstract>..article abstract..</abstract>
<keywords>..article keywords..</keywords>
</row>
<rows>
我正在寻找的输出是让每个<row>
节点都是自己的XML文件,并以<ABSNO>
节点作为文件名。
这可以通过样式表运行原始XML文件来完成吗?任何人都有时间帮我看看会是什么样子?
答案 0 :(得分:0)
<xsl:result-document>
应该找到一份工作。只是非常简单的示例(期望原始xml文件中的文档节点<rows>
。)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/rows/row">
<xsl:result-document method="xml" href="{ABSNO}.xml">
<xsl:copy-of select="." />
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>