- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 xslt 从一个 xhtml 文档中提取一个 div 部分到另一个 xhtml 文档中。然而,我没有成功。相反,xslt 转换产生了有线输出。假设要转换以下 xhtml 文档:
<?xml version="1.0" encoding="iso-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head>
<title>title test</title>
</head>
<body>
some blabla
<div>
<div id="testid" class="testclass">
hello world!
</div>
</div>
some other blabla <p/>
test paragraph<p/>
</body>
</html>
xslt 应提取 ID 为“testid”的 div 部分并将其写入新的 xhtml 文档,该文档应如下所示:
<?xml version="1.0" encoding="iso-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head>
<title>title test</title>
</head>
<body>
<div id="testid" class="testclass">
hello world!
</div>
</body>
</html>
我的 xslt 代码如下所示:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head>
</head>
<body>
<xsl:apply-templates select="node()|text()"/>
</body>
</html>
</xsl:template>
<xsl:template match="*">
<xsl:if test="div[@id='testid']">
<xsl:copy-of select="*"/>
</xsl:if>
<xsl:apply-templates select="node()|@*" />
</xsl:template>
</xsl:stylesheet>
实际输出如下:
<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head/>
<body>de
title test
some blabla
testidtestclass
hello world!
some other blabla
test paragraph
</body>
</html>
为了获得正确的结果,我需要在 xslt 中更改什么?任何帮助表示赞赏。谢谢。
最佳答案
这个样式表(拉式):
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="xhtml">
<xsl:template match="text()"/>
<xsl:template match="xhtml:div[@id='testid']">
<html lang="de">
<head></head>
<body>
<xsl:call-template name="identity"/>
</body>
</html>
</xsl:template>
<xsl:template match="node()|@*" mode="identity" name="identity">
<xsl:copy>
<xsl:apply-templates select="node()|@*" mode="identity"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
有了这个输入:
<?xml version="1.0" encoding="iso-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head>
<title>title test</title>
</head>
<body>some blabla
<div>
<div id="testid" class="testclass">hello world!</div>
</div>some other blabla
<p>test paragraph</p>
</body>
</html>
输出:
<html lang="de" xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<div id="testid" class="testclass">hello world!</div>
</body>
</html>
注意:从匹配节点调用身份规则。
此样式表(推送样式):
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="xhtml">
<xsl:template match="/">
<html lang="de">
<head></head>
<body>
<xsl:apply-templates select="//xhtml:div[@id='testid']"/>
</body>
</html>
</xsl:template>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
和“砖”模板:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="xhtml">
<xsl:template match="/">
<html lang="de">
<head></head>
<body>
<xsl:copy-of select="//xhtml:div[@id='testid']"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
关于xslt - 如何从一个 xhtml 文档中提取一个 div 部分到另一个 xhtml 文档中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5097063/
有谁知道 xhtml 中选项卡的字符实体是什么? (嗯,如果有的话)... 最佳答案 (X)HTML 对制表符没有特殊支持:它们只是另一个空白字符,无论您是否对它们进行转义。 关于xhtml - XH
我了解根据 HTML 规范,向元素添加自定义属性是无效的。这对 XHTML 也无效吗? 我认为 XHTML 是 XML 家族的一部分,因此是可扩展的。作为可扩展性,使用自定义属性不是可以吗? 戴夫 最
有没有关于如何正确处理 XHTML (1.0 Transitional) 中的空格的信息?似乎 XHTML 不使用标准的 XML 空白处理。 编辑:梅比我对我到底在寻找什么有点不准确。我对元素如何呈现
据我了解,XHTML (1.0, 1.1) 和 XHTML 5 都不需要 DTD。如果这是真的,浏览器将如何区分两者? 我只能假设当浏览器供应商支持 (X)HTML 5 时,所有 XHTML 都将按照
我得到了一个带有 session 范围 bean 的 xhtml 页面。现在我想在另一个 html 页面中两次使用此页面,一次在屏幕左侧,一次在屏幕右侧。如果我包含它,它指的是同一个 bean,我怎样
就SEO而言,从客户端角度来看,我应该使用XHTML 1.0 Transitional还是XHTML 1.0 Strict? 为什么有些人仍然使用Transitional? 如果我们使用“严格过渡”,
我以前只用 p和 span元素...但我一直在插入使用正确的元素,这是我之前没有真正考虑过关于推荐的事情。 这是我想到的... I love your products! Jim Testimo
所有现代浏览器都理解 HTML,所以除了在键盘最右侧编写更多字符之外,兼容 XHTML 的意义何在。 最佳答案 没有一点我能想到的。 W3C 已经取消了 XHTML 2.0,尽管应该有一个 XHTML
我制作了一个 Windows 图标 (*.ico) 并将其命名为 favicon,它是 16 x 16 和 16 种颜色...我已将其包含在链接标签中 但是加载不正确 how do I add a f
我有一个问题: 在 Lift 网络框架 (Scala) 版本中。我得到: Message: java.util.NoSuchElementException scala.RandomAccessS
我已经编写了有效的 XHTML 1.0 Transitional 代码。我想添加社交分享按钮(twitter、facebook 和 google+),但所有这些按钮都使我的代码无效。有什么解决办法吗?
我想知道在 XHTML 中标记科学名称的最佳方法。 This answer说我应该使用 元素,我不太赞成,当然,除非它是正确的元素。 我可以使用 ,但鉴于 HTML 的第一个用途是标记科学文档,我想
角色属性是否有定义的值,如果有,您能说出它们是什么吗? 或者我可以为角色属性创建自己的值吗?它们区分大小写吗?它们必须是字母吗?可以有数字吗? 或者您可以同时拥有定义的值和用户创建的值。 最佳答案 快
分别阅读两者,看起来都一样,html+xml+javascript。 那和有什么区别?有没有? 最佳答案 XHTML是 w3c标准,一种也严格符合 XML 的 HTML 形式。 DHTML是一个很大程
在使用 XSL 将 XHTML 转换为 XHTML 时,我遇到了 namespace 问题。考虑作为示例输入: Test Remove this 然后
我有以下代码使用 Text.XHtml.Strict 库在 Haskell 中生成一个包含一系列带有 id 和类的 div 的空白 html 页面: module Main where import
我对 IE 的 XHTML 兼容性进行了激烈的辩论。唯一的问题是,我不确定这家伙是不是在挑衅。 从本质上讲,他声称 IE 完全不兼容 XHTML,并且无论使用何种浏览器,具有定义的 XHTML 文档类
我已经为此奋斗了一段时间,但我什至无法弄清楚为什么它不起作用。以这个简单的 XHTML 测试源为例: foobar
虽然不推荐使用 target="_blank",但为什么 W3C 验证器没有给出关于此的错误?您可以在 validator 中粘贴并检查此代码: Untitled Document Li
是否有可能使 anchor 链接内部没有具有背景图像和固定尺寸的文本,并且仍然适合SEO? CSS示例: a{display:block;width:50px;height:20px;backgrou
我是一名优秀的程序员,十分优秀!