【问题标题】:How to parse XML using special character / using Transform如何使用特殊字符/使用 Transform 解析 XML
【发布时间】:2012-06-05 08:34:45
【问题描述】:

我正在使用 javax.xml.transform.Transformer 通过 XSLT 转换 XML。 在其中一个属性名称中有特殊字符'/'。它失败并出现错误“与元素类型“XXXXXXX”关联的属性名称“XXX”必须后跟'='字符”。如果我在属性名称中删除 /,则 XML 将被解析。但这不是正确的修复。我们需要在转换 XML 时忽略这个特殊字符。请提出建议。

【问题讨论】:

    标签: xml xslt transform using


    【解决方案1】:

    等等,你的 XML 中的属性 name 包含一个斜线字符?

    根据官方XML规范,即不是合法的属性名。

    http://www.w3.org/TR/xml/#NT-Name

    所以你的 XML 是非法的。如果要处理属性名称中带有斜线的“XML”文档,则必须修改现成的解析器或编写自己的解析器。由于您的 XML 是非法的,因此您不能期望 XSLT 解析器能够正常工作。

    【讨论】:

    • 有什么方法可以逃避/忽略这个 (/) 字符,使其不解析 xsl。 EX:我的属性名称是 HD/ONE="yes"。
    • 不,Suresh,你不明白。您的 XML 格式不正确。它与 XSLT 的功能无关。您不能对格式错误的 XML 做任何事情。你应该接受雷的回答。
    【解决方案2】:

    您不是在尝试转换 XML,而是在尝试转换非 XML,因为如果属性名称中有“/”,则它不是 XML。因此,要么将内容更改为有效的 XML,要么寻找非 XML 工具来完成这项工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 2011-01-28
      • 2012-09-30
      • 1970-01-01
      相关资源
      最近更新 更多