Использование XSLT для получения всех элементов из файла xhtml - PullRequest
1 голос
/ 16 марта 2011

У меня есть файл 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, я надеюсь перевести их в другой формат, но сначала мне нужно решить эту проблему.

Примечание. Я начал с шаблона идентификации .

Ответы [ 3 ]

1 голос
/ 17 марта 2011

Звучит так, будто вы хотите преобразование идентичности для всего, что ниже 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>
1 голос
/ 17 марта 2011

Вы уверены, что это не обычная проблема пространства имен? Похоже ли это на то, что вы показали нам, или вы пропустили пространства имен, потому что не понимали, что они имеют значение?

1 голос
/ 16 марта 2011

как то так?(терпите меня, прошло уже много лет с тех пор, как я активно занимался XSL)

<xsl:for-each select="head">
  <xsl:copy-of select="."/>
</xsl:for-each>

<xsl:for-each select="body">
  <xsl:copy-of select="."/>
</xsl:for-each>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...