新闻中心
XSLT怎么从一个字符串中解析出XML(parse-xml)
XSLT 3.0 提供 parse-xml() 函数将良构 XML 字符串转为文档节点,要求字符串格式良好、不支持 DTD/外部实体,需配合 try/catch 处理异常,XSLT 2.0 不支持。

XSLT 本身不能直接“解析”任意字符串为 XML(比如像 J*aScript 的 DOMParser 那样),但自 XSLT 3.0 起,标准提供了 parse-xml() 函数,专门用于将**格式良好的 XML 字符串**安全地转换为可操作的树结构(即一个文档节点)。
parse-xml() 的基本用法
该函数接收一个字符串参数,返回一个文档节点(document-node())。前提是字符串内容必须是良构(well-formed)的 XML,否则会抛出运行时错误(如 XPDY0002)。
示例:
<xsl:variable name="xml-str" select="'<root><item id="1">A</item><item id="2">B</item></root>'"/>
<xsl:variable name="doc" select="parse-xml($xml-str)"/>
<!-- 现在可以像处理普通 XML 一样遍历 -->
<xsl:for-each select="$doc/root/item">
<output id="{@id}"><xsl:value-of select="."/></output>
</xsl:for-each>常见注意事项和限制
parse-xml() 是纯函数,不支持 DTD、外部实体、命名空间前缀绑定(除非字符串中已声明)、XML 声明中的编码声明(实际只按 UTF-8 或 UTF-16 处理)等高级特性。它只做语法解析,不进行验证。
- 字符串中不能含未转义的
、<code>&,必须是合法 XML 文本(例如<表示字面小于号) - 不能解析 HTML;若需处理 HTML,应使用
pars(XSLT 3.0+,需处理器支持)
e-html() - 若字符串来自不可信来源,建议先用
try/catch包裹,避免崩溃
配合 try/catch 安全使用(XSLT 3.0)
当输入可能非法时,用 xsl:try 捕获解析失败:
美图AI开放平台
美图推出的AI人脸图像处理平台
111
查看详情
<xsl:try>
<xsl:variable name="parsed" select="parse-xml($input)"/>
<xsl:sequence select="$parsed//item"/>
<xsl:catch>
<error>Invalid XML: <xsl:value-of select="$input"/></error>
</xsl:catch>
</xsl:try>兼容性提醒:XSLT 2.0 不支持 parse-xml()
如果你用的是 XSLT 2.0 处理器(如 older Saxon-B、Xalan),parse-xml() 不可用。此时只能依赖处理器扩展函数(如 Saxon 9.1+ 的 saxon:parse()),或把解析逻辑前置到宿主语言(J*a/Python)中完成。
确认版本:检查你使用的处理器是否支持 XSLT 3.0(推荐 Saxon-HE 10+、Saxon-PE/EE 9.8+ 或 newer)。
基本上就这些。核心是:字符串要合法、用对版本、加好异常处理——parse-xml 就很可靠。
以上就是XSLT怎么从一个字符串中解析出XML(parse-xml)的详细内容,更多请关注其它相关文章!
# 如何将
# 爱联网络营销推广公司
# 香港seo优化角度
# 宁阳网站建设电话
# 美育网站建设公司
# 营销型企业网站推广
# 眉山百度知识营销推广公司
# 分公司可以建设网站
# 杭州网站建设哪家权威
# 惠安营销推广哪家强
# 广水seo排名优化
# 有哪些
# 客户端
# 的是
# javascript
# 如何用
# 如何使用
# 转换为
# 文档
# 不支持
# 美图
# 编码
# 处理器
# node
# html
# java
# python
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Vue.js 图片显示异常排查:理解应用挂载范围与DOM ID唯一性
C++如何实现线程池_C++11手动实现一个简单的固定大小线程池
如何使用纯J*aScript判断Input元素是否在特定类容器内
新手怎么开始学化妆 零基础化妆入门教程
React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性
星露谷物语官网入口 星露谷物语游戏官网入口
天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南
提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案
html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】
漫蛙2网页版漫画入口 漫蛙漫画在线官方登录
J*aScript教程:根据元素文本内容动态设置背景色
一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】
Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略
高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法
sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤
KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程
高德地图怎么看全景照片_高德地图全景照片浏览教程
J*aScript Promise链中如何正确终止后续.then执行并处理错误
Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧
Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求
苹果手机如何防止被恶意App追踪
163邮箱注册官网 免费申请163个人邮箱
漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址
J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析
夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案
高德地图公交到站提醒失败如何解决 高德提醒权限设置
58动漫网在线官方网 58动漫网正版动漫入口网址
Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略
在Go开发中优雅管理ListenAndServe进程:GoSublime集成方案
QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台
PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比
cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法
Composer的 "licenses" 命令如何帮助你遵守开源协议_检查项目依赖的许可证合规性
苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】
Linux如何排查内存不足OOME问题_LinuxOOM分析教程
UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】
实现全屏滚动与导航点:专业教程
TikTok国际版官网直达_TikTok国际版官网直达进入在线观看
蛙漫2日版入口 WAMAN2(日版)无删减漫画官网链接
sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统
Django表单提交验证失败后保持字段值不刷新
在命令行怎么运行html项目_命令行运行html项目方法【教程】
浏览器打开即用 美图秀秀网页版入口
在J*a中如何使用Stream.map转换元素_Stream映射操作解析
uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页
漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口
Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】
4399免费游戏网址入口 4399小游戏免费入口点开即玩
极速漫画官方主页网址 极速漫画漫画在线浏览官网链接
虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作


2025-12-14
浏览次数:次
返回列表
e-html()