我有一个.tei
文件,格式如下。在
<biblStruct xml:id="b0">
<analytic>
<title level="a" type="main">The Semantic Web</title>
<author>
<persName xmlns="http://www.tei-c.org/ns/1.0">
<forename type="first">T</forename>
<surname>Berners-Lee</surname>
</persName>
</author>
<author>
<persName xmlns="http://www.tei-c.org/ns/1.0">
<forename type="first">J</forename>
<surname>Hendler</surname>
</persName>
</author>
<author>
<persName xmlns="http://www.tei-c.org/ns/1.0">
<forename type="first">O</forename>
<surname>Lassilia</surname>
</persName>
</author>
</analytic>
<monogr>
<title level="j">Scientific American</title>
<imprint>
<date type="published" when="2001-05" />
</imprint>
</monogr>
</biblStruct>
我想将上述文件转换为.txt
格式,如下所示:
T. Berners-Lee, J. Hendler and O. Lassilia. ‘The Semantic Web’, Scientific American,May 2001
我尝试使用以下代码:
^{pr2}$上面代码的问题是循环按顺序执行,而字符串不是顺序格式。在
其次,可能会有更多的内部循环。在内部循环中提取某些内容而不进行手动检查也是有问题的。请帮我拿这个
我知道您正在寻找一个Python解决方案,但是由于XSLT是一个非常方便的替代方案,而且非常适合
.xml
文件,所以我还是发布一个XSLT解决方案。在我想它可以很容易地集成到您的Python解决方案中。
因此,这是必要的XSLT:
您不必对XSLT有太多了解就可以理解这段代码:}等分隔符时有所不同。在
有三个模板匹配
author
元素——一个匹配第一个匹配,一个匹配last()
匹配,还有一个匹配两者之间的所有元素。它们只在处理,
和{最后一个模板处理整个XML并合并其他三个模板的输出。它还设法通过引用
month:month
数据岛将数字月份号转换为字符串。在您还应该查看
xsl:stylesheet
元素的已定义名称空间:http://www.w3.org/1999/XSL/Transform
http://www.tei-c.org/ns/1.0
http://month.com
用于数据岛我希望我为使用XSLT文件进行转换提供了一个令人信服的例子。
xsl:output
元素使用method="text"
指定所需的文本输出目标。在相关问题 更多 >
编程相关推荐