是否允许XML属性值中的换行符?
我意识到这不是优雅或想要的,但它允许(在格式良好的XML)的XML元素中的属性值跨越多行?
例如
<some-xml-element value="this value goes over.... multiple lines!" />
是的,我意识到有更好的写作方式。 我会亲自把它写成:
<some-xml-element> <value>this value goes over... multiple lines!</value> </some-xml-element>
要么:
<some-xml-element value="this value goes over....
" />
但是我们有我们自己的XMLparsing器,我想知道第一个例子是否允许在格式良好的XML中。
http://www.w3.org/TR/REC-xml/#NT-AttValue
似乎说除了<
, &
,和你的分隔符( '
或"
)都可以,所以换行符也应该是。
这是允许的,但根据W3C的build议,你的XMLparsing器应该规范化所有的空格字符到空格(0x20) – 所以你的例子的输出将有所不同(你应该在“&#13;&#10 ;“,但在第一种情况下只有空间)。
仅限于.NET:如果您不确定目标string是否为有效的xml属性(并通过代码提供此属性的值),则始终可以使用SecurityElement.Escape函数来转义无效字符。
根据这个函数的描述,唯一的无效字符是:
<
, >
, &
, '
, "
这意味着(正如我的前任写的),新的路线应该是可以的。
是的,第一个例子是有效的。