又碰到转义字符,估计这个是LINUX下JAVA生成的XML,所以只有
。

没有办法,只好整理了弄下。
if (c == ‘&’) {
buf.Append (“&”);
并且XML每次还得先把&转换成&。如果LOADXML," 就成了:"&

http://cse-mjmcl.cse.bris.ac.uk/blog/2007/02/14/1171465494443.html
In c#: xml = Regex.Replace(xml, “&\\#x(?:0[0-8BCEF]|1[0-9A-F]);”, “”);
这人狠,直接干掉··

http://www.csharper.net/blog/escape_xml_string_characters_in_c_.aspx
xml = xml.Replace( “&”, “&” );
xml = xml.Replace( “<”, “<” );

但是好像不区分大小写?

XML文档中使用多个关键字,如果XML文档中使用这些关键字,则需要转义。这些字符如下:

l         “&”用替换“&amp”;

l         “<”用替换“&lt;”;

l         “>”用替换“&gt;”;

l         “””用替换“&quot;”;

l         空格用替换“&nbsp;”。

XML标准中还定义了其它一些转义符,用于显示一些特别字符,如各种货币的符号(英镑:&pound;)、商标符号(&#8482;)等。

Character Name  Entity Reference  Character Reference  Numeric Reference
Ampersand  &amp;  &  &#38;#38;
Left angle bracket  &lt;  <  &#38;#60;
Right angle bracket  &gt;  >  &#62;
Straight quotation mark  &quot;  ”  &#39;
Apostrophe  &apos;  ’  &#34;
http://support.microsoft.com/?scid=kb%3Ben-us%3B316063&x=7&y=9
微软直接搞了个private void ReplaceSpecialChars(long linenumber)

我干脆全部替换一遍:
string s = xn.InnerText;
s = Regex.Replace(s, “&#xD;&#xA;”, “\r\n”);
s = Regex.Replace(s, “&nbsp;”, ” “);
s = Regex.Replace(s, “&#xD;”, “\r\n”);
s = Regex.Replace(s, “&#xA;”, “\r\n”);
s = Regex.Replace(s, “&quot;”, “”");
s = Regex.Replace(s, “&lt;”, “<”);
s = Regex.Replace(s, “&gt;”, “>”);
s = Regex.Replace(s, “&apos;”, “\”);
s = Regex.Replace(s, “&amp;”, “&”);

虽然据说2、System.Text.Regex(Regular Expression正则表达式),大家都估计到它的效率不高,虽然它支持忽略大小写。
//另外还碰到个好玩的事情,如果外接了显示器,并且拖过去了程序,如果拔掉,这个程序就找不回来了。得右键菜单-移动,然后拖回来。

表显示了 XML 输出中转义的字符。除 UserData 元素(其中包含用户提供的非转义数据)外,其他所有元素和属性均发生转义。UserData 元素是调用 TraceData 方法的结果。

转义字符
& &amp;
< &lt;
> &gt;
&quot;
\ &apos;
0xD &#xD;
0xA &#xA;

找了找资料,发现很多也是手工转换:

历史博文

标签:,
九月 5, 2009 at 3:48 上午 by yippee 71 次
Category: Dev
Tags: ,