【发布时间】:2022-01-23 19:29:36
【问题描述】:
我有一些 XML(我无法控制),其中包含一些“rdf”注释。 我正在尝试将其转换为实际可用的 RDF/XML(使用 XSLT),但有一个问题我不太知道如何解决。 首先,在 XML 中有很长的部分,如下所示:
<rdf:Description>
<some:tag>
<rdf:Bag>
<rdf:li rdf:resource="resource1" />
</rdf:Bag>
</some:tag>
<some:other-tag>
<rdf:Bag>
<rdf:li rdf:resource="resource2" />
<rdf:li rdf:resource="resource3" />
</rdf:Bag>
</some:other-tag>
</rdf:Description>
目标是像这样创建 RDF/XML:
<rdf:Description>
<some:tag>resource1</some:tag>
<some:other-tag>resource2<some:other-tag>
<some:other-tag>resource3<some:other-tag>
</rdf:Description>
然而,不同标签的数量可能是无限的,所以我不能在这里列举不同的情况。我需要一些通用的方法来使用包周围的标签作为各个资源属性的封闭标签。
很遗憾,我对 XSLT 真的不太了解,所以在这里不知所措。
不幸的是,到目前为止我所做的不适用于some:other-tag 的情况,因为我只得到一个三元组,其中对象是连接的:
<some:other-tag>resource2resource3</some:other-tag>
<xsl:template match="rdf:Description/*">
<xsl:copy>
<xsl:for-each select="rdf:Bag/rdf:li/@rdf:resource">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:copy>
</xsl:template>
【问题讨论】: