XSLT 转换 XML 到 HTML 需处理器、命名空间匹配、模板优先级和输出方法协同;现代浏览器禁用内联 XSLT,须用工具链或本地 HTTP 服务;命名空间、模板选择、输出转义等细节极易出错。
XSLT 转换 XML 到 HTML 不是“运行一个命令”就能完事的事,它依赖处理器、命名空间匹配、模板优先级和输出方法三者协同;没配对好,浏览器直接空白或报错。
浏览器里用
直接渲染 XML?别试了
现代浏览器(Chrome/Firefox/Edge)已默认禁用内联 XSLT 处理,XML 文件里写
大概率静默失败,连控制台都不报错。这不是你 XSL 写错了,是浏览器策略变了。
本地开发时,必须用支持 XSLT 的工具链:比如
命令行、VS Code 的
插件、或 Node.js 的
若坚持在浏览器调试,得起一个本地 HTTP 服务(
),且确保响应头
和 XSL 文件可跨域访问
必须显式声明,否则默认输出
,浏览器会当纯文本渲染,看不到结构
匹配不到元素?先查命名空间
XML 带命名空间(比如
)却没在 XSLT 里声明前缀,
就永远不生效——XSLT 把无前缀的
当作“无命名空间”,而实际元素属于那个 URI。
在
根节点加
,然后模板写成
如果 XML 命名空间是默认(无前缀),XSLT 中不能用空前缀匹配,必须用
这类兜底写法(但性能差,仅应急)
用
这类带前缀的属性需对应声明
和
选哪个?看数据驱动逻辑
是过程式遍历,
是声明式分发——后者才是 XSLT 的设计本意,也更容易维护。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
立即学习
“
前端免费学习笔记(深入)
”;
用
适合简单平铺,但无法复用模板、不能自然处理嵌套层级变化
用
后,每个
会按
规则自动找对应模板,父子结构、条件分支都更清晰
常见坑:
不带
时,默认处理所有子节点(包括文本节点),常导致多余空格或换行出现在 HTML 中,建议明确写
或用
输出 HTML 时样式和脚本不生效?检查
想让 XSLT 输出
被浏览器执行,而不是显示为文字,必须用
,但这个开关有代价。
只对
或
生效,且仅影响该节点内容,不是全局设置
误用会导致 XSS 风险(比如把用户输入直接
),生产环境应严格过滤
HTML5 自闭合标签(如
、
)在
下会被自动补全为
,无需手动写斜杠;但若用
,就必须写全
,否则解析失败
最麻烦的从来不是语法,而是 XML 命名空间和 XSLT 处理器版本差异——Saxon 10 默认用 XPath 3.1,而 libxslt(Linux 系统常用)只到 XPath 1.0,
、
这些函数一用就报错
。动手前,先
或
看清手里的刀是什么型号。
XTDE0420xsl:stylesheetsaxonXML Toolsxslt-processnpx http-serverContent-Type: text/xmlxmlxsl:template matchxmlns="http://example.com/ns"match="/root"rootxmlns:ns="http://example.com/ns"match="/ns:root"match="*[local-name()='root']"@xml:langxmlns:xml="http://www.w3.org/XML/1998/namespace"itemmatchselectselect="*"disable-output-escapingdisable-output-escaping="yes"disable-output-escaping
method="html"method="xml"replace()mapXPST0017saxon -versionxsltproc --version