我有一个xhtml文件,我试图转换为:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>yada</title>
<meta.....>
</head>
<body>
<p>Something</p>
<p>awesome</p>
</body>
</html>
成为
<title>yada</title>
<meta.....>
<p>Something</p>
<p>awesome</p>
我所关注的关键是从文档中删除<head>
和<body>
标记。我不想通过sed或awk来删除它们。
我尝试过的所有东西都有html中的全部内容或将其全部转换为纯文本。
关于问题的背景:我有一个用multimarkdown编写的博客备份,我希望将它们放到不同的格式中,但我需要先解决这个问题。
注意:我开始使用identity template。
答案 0 :(得分:1)
<xsl:for-each select="head">
<xsl:copy-of select="."/>
</xsl:for-each>
<xsl:for-each select="body">
<xsl:copy-of select="."/>
</xsl:for-each>
答案 1 :(得分:1)
听起来您希望html
和body
下面的所有内容都进行身份转换:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/html|/html/head|/html/body">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 2 :(得分:1)
您确定这不是通常的命名空间问题吗?输入是否真的像你向我们展示的那样,或者你是否遗漏了命名空间,因为你没有意识到它们有所不同?