【发布时间】:2015-09-23 06:47:41
【问题描述】:
我有数千个 xsl 文件,我需要对它们进行转换以便在 Solr 中对它们进行索引。我已经这样做了,但我需要每个文件都有一个与文件名相同的字段 ID。 文件如下所示:
<TEXT>
<TITLE>A Title</TITLE>
<DATELINE> A Dateline </DATELINE>
<BODY> text </BODY>
</TEXT>
例如:我的文件名类似于“0001.xsl”、“0002.xsl”..等。 我需要有类似的东西:
<?xml version="1.0" encoding="UTF-8"?>
<add>
<doc>
<field name="ID">0001</field>
<field name="TITLE">-a tile-</field>
<field name="DATELINE">-a dateline-</field>
<field name="BODY"> -text-</field>
</field>
</doc>
</add>
这是样式表:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- use this for debugging only -->
<!-- <xsl:output method="xml" indent="yes"/> -->
<xsl:template match="*">
<xsl:element name="field">
<xsl:attribute name="name">
<xsl:value-of select="name()"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
<xsl:template match="/">
<add>
<doc>
<xsl:apply-templates select="//TEXT/*"/>
</doc>
</add>
</xsl:template>
</xsl:stylesheet>
我该怎么做呢?我是否需要更改样式表,或者我可以在读取文件名后使用 Java 添加特定字段? 我正在使用 Java 来转换文件并为它们编制索引。
【问题讨论】:
-
你能把文件名作为参数传递给样式表吗?还是切换到 XSLT 2.0 处理器?
标签: java xml xslt indexing solr