具体来说,有没有办法为 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 文档必须以以下任一开头:
- 一个
<
(通过XMLDecl
、Comment
、PI
、doctypedecl
或element
)或 - 一个空白字符(前提是没有
XMLDecl
)。
关于xml - XML 文件的第一个字符必须是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47803078/