【问题标题】:XML tagname starting with number is not working以数字开头的 XML 标记名不起作用
【发布时间】:2013-10-30 08:32:54
【问题描述】:

我想使用 Jenkins 构建更新组件 870Jars 属性值。 当我在 IE 中打开 xml 文件时,出现以下错误

错误:- XML页面无法显示

无法使用 XSL 样式表查看 XML 输入。请更正错误,然后单击“刷新”按钮,或稍后重试。

名称以无效字符开头。错误处理资源'https://svn.retailerinfo.com/svn/Stores/Po...

---^

XML 文件:-

<?xml version="1.0" encoding="UTF-8"?><Application> 
<app-name>Regist</app-name>
<baseline-version>Regist_R11.6.0.51</baseline-version>
<app-version>v11.6.0.51</app-version>
<defversion>1.0.0</defversion>
<component>
    <870Jars>
    <filename>v10.3.0-870Jars.zip</filename> 
    <targetfilename/> 
    <version>v10.3.0</version> 
    </870Jars>
</component>
</Application>

有什么方法可以让标签名称以数字开头?

我使用 &amp;lt;/870Jars&amp;gt; 代替 但它只是打印值而不是作为标签工作

【问题讨论】:

    标签: xml


    【解决方案1】:

    名称以数字开头的 XML 元素是 非法 XML。你不应该以数字开头。

    XML 元素必须遵循以下命名规则:

    • 名称可以包含字母、数字和其他字符
    • 名称不能以数字或标点符号开头
    • 名称不能以字母 xml(或 XML、Xml 等)开头
    • 名称不能包含空格

    可以使用任何名称,不保留任何单词。

    http://www.w3schools.com/xml/xml_elements.asp

    Specification Details.

    【讨论】:

    • 但我必须按照要求使用它。我尝试用十六进制 <_x0038_70jars> 代替 但它不起作用。不确定我在这里缺少什么
    • @user2935276 转义序列在标签名称中不起作用。没有简单的方法可以这么说,但是如果您的要求是 a) 使用 XML 并且 b) 违反 XML,那么您的要求就大错特错了。如果这是现有的文件格式,我最好的建议是在解析之前将文档编辑为有效的 xml,然后在保存后对其进行编辑以匹配您的文件格式。
    【解决方案2】:

    简单的解决方法是 {concat('_',data(desired_tag_name_here))} 并在其他地方过滤掉第一个字符(如果它是 lodash)。一个花絮,但是当 CData 和其他方法太脏或使代码不可读时,只需通过连接标记一个注释,用下一个处理程序修复它,然后继续你的业务

    【讨论】:

      【解决方案3】:

      尝试使用如下 CDATA:

      <component>
          <![CDATA[    
          <870Jars>
          <filename>v10.3.0-870Jars.zip</filename> 
          <targetfilename/> 
          <version>v10.3.0</version> 
          </870Jars>
       ]]>
      </component>
      

      【讨论】:

      • CDATA 表示:这不是 XML;虽然它将代表 870Jars 序列,但不能被解析为 XML 并且不能包含 ]] 序列
      • 同意鲁本斯 - 在这里使用 CDATA 是一个坏主意,因为它会阻止对包含的标签进行标准(即 xpath)解析,例如。版本
      猜你喜欢
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      相关资源
      最近更新 更多