Я видел этот ресурс, текст ссылки, но у меня все еще есть проблемы с созданием действительного документа XHTML с помощью синтаксического анализатора MSXML.
У меня есть на входе следующий документ:
<?xml version="1.0" encoding="UTF-8" ?>
- <html xml:lang="it" xmlns="http://www.w3.org/1999/xhtml">
- <head xmlns="">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Bla bla bla</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/bla.css" />
</head>
- <body xmlns="" style="background-color:#DFDFDF;left-margin:0;margin-top:0">
....
</body>
</html>
где неприятные xmlns="" создаются, потому что я вставил инструкцию:
parserInstance.documentElement.setAttribute "xmlns", "http://www.w3.org/1999/xhtml"
при создании входного документа перед преобразованием.
XSLT импортирует преобразование, которое я использую для захвата html-элементов.
<xsl:stylesheet
version="1.0"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="xhtml xsl"
>
<xsl:import href="_lib.xsl"/>
<xsl:import href="_standard.xsl"/>
и в _standard.xsl у меня есть код, который выполняет соответствующее преобразование:
<xsl:template match="html">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates select="head" />
<xsl:apply-templates select="body" />
</xsl:copy>
Тем не менее у меня нет необходимых xmlns в разметке html:
<html xml:lang="it">
И у меня все еще есть неприятные xmlns, перемежающиеся в html-коде:
<h1 xmlns="http://www.w3.org/1999/xhtml">BLA BLA</h1>
Где я ошибаюсь?
Пожалуйста, ОБРАТИТЕ ВНИМАНИЕ: я ДОЛЖЕН использовать модель извлечения для преобразования, я не могу использовать преобразование идентичности