0

我开始了解有关使用 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 文件来完成吗?有人有时间帮我看看那会是什么样子吗?

4

1 回答 1

0

<xsl:result-document>应该做一份工作。只是非常简单的示例(期望<rows>原始 xml 文件中的文档节点)。

<?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>
于 2013-09-03T18:36:03.920 回答