【问题标题】:xslt having a XML schemalocation with & (ampersand) [duplicate]xslt 具有带有 & (与号)的 XML 模式位置 [重复]
【发布时间】:2019-07-22 16:23:25
【问题描述】:

需要解析一个类似这样的 XML 文件:

<Report xmlns="XXXXX"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="XXXXX https://www.somesite.com?x=3&y=4">
  <Tablix1><val>asdasdasd</val></Tablix1>
</Report>

在我的 XSL 文件中,我有这样的内容:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xsi="XXXXX">

<xsl:template match="/">
<xsl:value-of select="xsi:Report/xsi:Tablix1/xsi:val" />
</xsl:template>
</xsl:stylesheet>

由于 xml 输入中包含 schemalocation&amp;amp;,因此似乎无法正常工作...

关于如何解决它的任何线索?我试图在解析之前不替换它...

【问题讨论】:

  • &amp;amp; 用于XML 中的&amp;amp;
  • 这里和网络上有相当多的“XSLT & 符号”点击率。你做了什么研究?
  • "xml 输入中包含一个 & 架构位置..." 我没有看到它。
  • 对不起@michael.hor257k:错字。 https://www.somesite.com?x=3&amp;y=4。已编辑。
  • @kjhughes 和 @jdv :&amp;amp; 这不是解决方案,因为我不拥有该文件。对其进行更改将被视为一种解决方法,而不是解决方案。我进行了相当广泛的研究......

标签: xml xslt ampersand


【解决方案1】:

如果架构位置是 https://www.somesite.com?x=3&amp;amp;y=4,那么它应该在 XML 中表示为 https://www.somesite.com?x=3&amp;amp;y=4

【讨论】:

  • 有什么办法可以绕过更改 XML 文件吗?我可以在 XSL 上做什么?例如忽略输入中的schemaLocation
  • 如果您的输入不是格式良好的 XML,那么您可以处理它的唯一方法是使用可以处理非 XML 输入的基于文本的工具,例如 sed/awk/ 等工具perl.
猜你喜欢
  • 1970-01-01
  • 2017-03-24
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 2022-01-20
  • 2012-10-04
相关资源
最近更新 更多