这是我的示例XML文件转换为不同的格式。我想转换SOLR标准格式上传xml文件。我尝试使用XSLT转换xml文件为solr格式。但它只为工作的第一部分。我必须转换为所有元素。我可以转换为我所需的输出。如果有任何相关的文章,请分享。
<?xml version="1.0"?>
<article>
<section xml:id="s495f">
<title xml:id="h4cd0"> ID</title>
<para xml:id="p75998"> User_name</para>
</section>
<section xml:id="s495f">
<title xml:id="h4cd0"> ID</title>
<para xml:id="p75998"> User_name</para>
<para xml:id="pfa"> abbccddefg</para>
</section>
<section xml:id="s495f">
<title xml:id="h4cd0"> ID</title>
<para xml:id="p75998"> User_name</para>
<para xml:id="pfa"> Test</para>
</section>
</article>
我尝试使用XSLT转换为Solr标准格式。以下是我的XSLT文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/article">
<add>
<doc>
<xsl:apply-templates select="section"/>
</doc>
</add>
</xsl:template>
<xsl:template match="para">
<field name="para {@xml:id}">
<xsl:value-of select="." />
</field>
</xsl:template>
<xsl:template match="title">
<field name="title {@xml:id}">
<xsl:value-of select="." />
</field>
</xsl:template>
</xsl:stylesheet>
我输出如下:这只适用于单个“section”元素,我尝试为每个“section”元素进行转换
我的输出:
<?xml version="1.0" encoding="UTF-8"?>
<add>
<add>
<doc>
<field name ="title h4cd0"> ID</field>
<field name = "para p75998"> User_name</field>
<field name = "para pfa"> xyxzzc</field>
<field name = "para p90f4b1"> location: details</field>
<field name = "para p43cecf4"> Job profile</field>
<field name = "para p75d4cc799"> refrence Id</field>
<field name = "para p628c34"> True</field>
</doc>
</add>
我期望的输出:
<add>
<doc>
<field name ="title h4cd0"> ID</field>
<field name = "para p75998"> User_name</field>
</doc>
<doc>
<field name ="title h4cd0"> ID</field>
<field name = "para p75998"> User_name</field>
<field name = "para pfa"> abbccddefg</field>
</doc>
<doc>
<field name ="title h4cd0"> ID</field>
<field name = "para p75998"> User_name</field>
<field name = "para pfa"> Test</field>
</doc>
</add>
1条答案
按热度按时间c2e8gylq1#
您在模板中创建了与
article
匹配的Solrdoc
元素,但实际上您希望为每个section
创建一个doc
。您需要创建一个与section
匹配的模板,并将doc
元素移到其中(article
模板应该只创建Solradd
元素)。Solr字段名称中不允许NB空格。请尝试使用下划线。