xml - XML 文件的第一个字符必须是什么?

标签 xml linux bash shebang

具体来说,有没有办法为 XML 文件编写 shebang?

我正在处理一些包含启动信息的 XML 文件。 (Roslaunch 文件,如果重要的话)。我想直接调用该文件并让 bash 启动它。但是,对于 XML 来说,以 #! 开头是语法错误。有没有办法用 shebang 编写 XML 文件?

最佳答案

XML 文件中的第一个字符必须<或空格。格式良好的 XML 文档可能不以其他字符开头,包括 # .

根据 Extensible Markup Language (XML) 1.0 (Fifth Edition) Well-Formed XML Documents 的 XML EBNF :

[1]  document ::= prolog element Misc*
[22] prolog   ::= XMLDecl? Misc* (doctypedecl Misc*)?
[23] XMLDecl  ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
[27] Misc     ::= Comment | PI | S
[3]  S        ::= (#x20 | #x9 | #xD | #xA)+
[16] PI       ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
[15] Comment  ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
[28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? 
                     ('[' intSubset ']' S?)? '>'
[39] element  ::= EmptyElemTag | STag content ETag
[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
[40] STag     ::= '<' Name (S Attribute)* S? '>'

document 可以明显看出production 及其组成部分,XML 文档必须以以下任一开头:

  • 一个< (通过 XMLDeclCommentPIdoctypedeclelement)
  • 一个空白字符(前提是没有 XMLDecl )。

关于xml - XML 文件的第一个字符必须是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47803078/

相关文章:

bash - 使用 git hooks + laravel artisan 命令创建简单的自动部署

java - DOM 解析在一个 Activity 中有效,但在具有相同代码的另一个 Activity 中无效?

mysql - 将记录从 XML 文件插入 MySQL DB

java - 如何在 Linux 中以编程方式列出所有 SSL/TLS 证书?

ruby-on-rails - 环境变量在 Rails 控制台中可用但在应用程序中不可用

bash - 使用 "filename:line"语法打开文件

c# - 删除 XmlDocument 中的自关闭标签(例如/>)

java - 用于创建引用文件的 xml 或普通文件

c# - 使用 Mono 从 Linux 终端构建 C# 控制台项目

bash - "~/Desktop/test.txt: No such file or directory"