鉴于我有以下XML
<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://www.stoa.org/epidoc/schema/8.19/tei-epidoc.rng"
schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="http://www.stoa.org/epidoc/schema/8.19/tei-epidoc.rng"
schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-stylesheet type="text/xsl" href="tei_poetry_parse2.xslt"?>
<TEI>
<l>In nova fert animus mutatas dicere formas</l>
<l>corpora; di, coeptis (nam vos mutastis et illas)</l>
</TEI>
我想用XSLT转换为以下代码
<lb />
In nova fert animus mutatas dicere formas
<lb />
corpora; di, coeptis (nam vos mutastis et illas)
所以基本上我想提取文本内容并将其放在元素之后(我想将其更改为空的或自动关闭的<lb>
。
我尝试使用以下XSLT-Stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xpath-default-namespace="http://www.tei-c.org/ns/1.0" version="2.0">
<xsl:output method="xml"/>
<xsl:template match="/">
<text>
<title>Text</title>
<xsl:apply-templates/>
</text>
</xsl:template>
<xsl:template match="l" xmlns="http://www.tei-c.org/ns/1.0">
<lb />
<xsl:value-of select="(text())"/>
</xsl:template>
</xsl:stylesheet>
当我对其进行转换时,所有<lb>
- 标签都嵌套在一起。当我将输出方法更改为html
时,它可以工作,但我需要XML作为输出。
我很乐意提供任何帮助!
我得到了什么: DOM
答案 0 :(得分:0)
让我们举一个简单的工作示例:
XML
<TEI xmlns="http://www.tei-c.org/ns/1.0" >
<l>In nova fert animus mutatas dicere formas</l>
<l>corpora; di, coeptis (nam vos mutastis et illas)</l>
</TEI>
XSLT 2.0
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xpath-default-namespace="http://www.tei-c.org/ns/1.0" >
<xsl:output method="xml" omit-xml-declaration="yes" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:template match="/TEI">
<text>
<title>Text</title>
<xsl:apply-templates/>
</text>
</xsl:template>
<xsl:template match="l">
<lb/>
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
<强>结果强>
<text>
<title>Text</title>
<lb/>In nova fert animus mutatas dicere formas
<lb/>corpora; di, coeptis (nam vos mutastis et illas)
</text>