XSLT 1 - 如何将'&'替换为 XML 文件中的'&'?



我需要使用 XSLT 1 找到修复的解决方案!大多数发送的XML文件格式良好,有人通过添加字符(&<>.(来弄乱。 有什么方法可以在我这边替换它吗?我尝试了 XSLT 2 和替换功能不起作用,因为我使用的是 XSLT 处理器Microsoft

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:saxon="http://saxon.sf.net/"
  exclude-result-prefixes="xs saxon"
  version="2.0">
<xsl:param name="path" select="'file:///E:/foo.xml'"></xsl:param>
<xsl:template match="/">
<xsl:copy-of select="unparsed-text($path)"></xsl:copy-of>
<xsl:copy-of select="saxon:parse(replace(unparsed-text($path), '&amp;',      '&amp;amp;'))"/>
</xsl:template>
</xsl:stylesheet>

如何解决此问题的任何其他建议。 例如,我有输入XML文件,如下所示:

  <?xml version="1.0" encoding="UTF-8"?>
  <name>Stack & Exchange</name>

并且在"&"字符上失败。

请指教!谢谢

结论

两点观察结果

  • XSLT 在输入时至少需要一个格式正确的 XML 文档,所以我不能使用它来更正无效的 XML (它是一种 XML 转换语言(
  • 为了在输入上使用替换或转义 XML 的无效字符,我需要确保我使用 XSLT 2.0 处理器 (我使用Microsoft处理器 XSLT 1.0
  • (

我看到两个选项

  • 如果我在输入时收到错误,请手动调查和验证,然后发回错误消息。 - 这是我试图避免的!(使用记事本++、excel 等文本工具查找问题(。
  • 在加载为 XML 之前,用 .NET 语言编写要修复的更正解析器

相关内容

  • 没有找到相关文章

最新更新