请问tinyxml库怎么解析不了含有&的字段呢?

luo6620378xu 2014-05-13 05:49:21
<!-- svr protocal function declaration, and other class function declaration -->
<function name="UpdateRouteInfo" cmdid="500" >
<request existence="1" type="CVideoPacket&" name="pack" id="1"/>
<response existence="0" />
</function>

<function name="PushMsg" cmdid="501" >
<request existence="1" type="CVideoPacket&" name="pack" id="1"/>
<response existence="0" />
</function>

问题:对于上面的request 的type对应的属性值,读出来的值没有&。

请问是tinyxml不支持解析&符号,还是我的用法错了?
我直接用Attribute("type")进行读取的。


谢谢!
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-05-14
  • 打赏
  • 举报
回复
CSpecialCharHashTable::CSpecialCharHashTable() 
{ 
    for (unsigned i=0; i<SPECIAL_CHAR_HASH_TABLE_SIZE; i++) 
        _aHashTable[i] = 0; 
 
    // 
    // Initialize the table with various Ascii string->Unicode mappings 
    // 
 
    // 
    // For lt and gt, use Unicode chars from private use area to avoid 
    // collision with '<' and '>' chars in Html tags. These will be 
    // mapped back to '<' and '>' by the scanner. 
    // 
    Add(L"lt",      PRIVATE_USE_MAPPING_FOR_LT); 
    Add(L"gt",      PRIVATE_USE_MAPPING_FOR_GT); 
 
    Add(L"amp",     0x26); 
    Add(L"quot",    0x22); 
    Add(L"nbsp",    0xa0); 
    Add(L"shy",     0xad); 
    Add(L"Agrave",  0xc0); 
    Add(L"agrave",  0xe0); 
    Add(L"Aacute",  0xc1); 
    Add(L"aacute",  0xe1); 
    Add(L"Acirc",   0xc2); 
    Add(L"acirc",   0xe2); 
    Add(L"Atilde",  0xc3); 
    Add(L"atilde",  0xe3); 
    Add(L"Auml",    0xc4); 
    Add(L"auml",    0xe4); 
    Add(L"Aring",   0xc5); 
    Add(L"aring",   0xe5); 
    Add(L"AElig",   0xc6); 
    Add(L"aelig",   0xe6); 
    Add(L"Ccedil",  0xc7); 
    Add(L"ccedil",  0xe7); 
    Add(L"Egrave",  0xc8); 
    Add(L"egrave",  0xe8); 
    Add(L"Eacute",  0xc9); 
    Add(L"eacute",  0xe9); 
    Add(L"Ecirc",   0xca); 
    Add(L"ecirc",   0xea); 
    Add(L"Euml",    0xcb); 
    Add(L"euml",    0xeb); 
    Add(L"Igrave",  0xcc); 
    Add(L"igrave",  0xec); 
    Add(L"Iacute",  0xcd); 
    Add(L"iacute",  0xed); 
    Add(L"Icirc",   0xce); 
    Add(L"icirc",   0xee); 
    Add(L"Iuml",    0xcf); 
    Add(L"iuml",    0xef); 
    Add(L"ETH",     0xd0); 
    Add(L"eth",     0xf0); 
    Add(L"Ntilde",  0xd1); 
    Add(L"ntilde",  0xf1); 
    Add(L"Ograve",  0xd2); 
    Add(L"ograve",  0xf2); 
    Add(L"Oacute",  0xd3); 
    Add(L"oacute",  0xf3); 
    Add(L"Ocirc",   0xd4); 
    Add(L"ocirc",   0xf4); 
    Add(L"Otilde",  0xd5); 
    Add(L"otilde",  0xf5); 
    Add(L"Ouml",    0xd6); 
    Add(L"ouml",    0xf6); 
    Add(L"Oslash",  0xd8); 
    Add(L"oslash",  0xf8); 
    Add(L"Ugrave",  0xd9); 
    Add(L"ugrave",  0xf9); 
    Add(L"Uacute",  0xda); 
    Add(L"uacute",  0xfa); 
    Add(L"Ucirc",   0xdb); 
    Add(L"ucirc",   0xfb); 
    Add(L"Uuml",    0xdc); 
    Add(L"uuml",    0xfc); 
    Add(L"Yacute",  0xdd); 
    Add(L"yacute",  0xfd); 
    Add(L"THORN",   0xde); 
    Add(L"thorn",   0xfe); 
    Add(L"szlig",   0xdf); 
    Add(L"yuml",    0xff); 
    Add(L"iexcl",   0xa1); 
    Add(L"cent",    0xa2); 
    Add(L"pound",   0xa3); 
    Add(L"curren",  0xa4); 
    Add(L"yen",     0xa5); 
    Add(L"brvbar",  0xa6); 
    Add(L"sect",    0xa7); 
    Add(L"die",     0xa8); 
    Add(L"copy",    0xa9); 
    Add(L"laquo",   0xab); 
    Add(L"reg",     0xae); 
    Add(L"macron",  0xaf); 
    Add(L"deg",     0xb0); 
    Add(L"plusmn",  0xb1); 
    Add(L"sup2",    0xb2); 
    Add(L"sup3",    0xb3); 
    Add(L"acute",   0xb4); 
    Add(L"micro",   0xb5); 
    Add(L"para",    0xb6); 
    Add(L"middot",  0xb7); 
    Add(L"cedil",   0xb8); 
    Add(L"supl",    0xb9); 
    Add(L"raquo",   0xbb); 
    Add(L"frac14",  0xbc); 
    Add(L"frac12",  0xbd); 
    Add(L"frac34",  0xbe); 
    Add(L"iquest",  0xbf); 
    Add(L"times",   0xd7); 
    Add(L"divide",  0xf7); 
} 
gojoy_x13 2014-05-13
  • 打赏
  • 举报
回复
& 特殊符号的xml的解析规则。
mujiok2003 2014-05-13
  • 打赏
  • 举报
回复
引用 3 楼 luo6620378xu 的回复:
[quote=引用 2 楼 mujiok2003 的回复:]
<root>
  <function name="UpdateRouteInfo" cmdid="500">
    <request existence="1" type="CVideoPacket&" name="pack" id="1"/>
    <response existence="0"/>
  </function>
  <function name="PushMsg" cmdid="501">
    <request  existence="1" type="CVideoPacket&"  name="pack" id="1"/>
    <response existence="0"/>
  </function>
</root>
牛逼,请问这是tinyxml的编码规则吗?[/quote] 这是xml规则。
luo6620378xu 2014-05-13
  • 打赏
  • 举报
回复
引用 2 楼 mujiok2003 的回复:
<root>
  <function name="UpdateRouteInfo" cmdid="500">
    <request existence="1" type="CVideoPacket&" name="pack" id="1"/>
    <response existence="0"/>
  </function>
  <function name="PushMsg" cmdid="501">
    <request  existence="1" type="CVideoPacket&"  name="pack" id="1"/>
    <response existence="0"/>
  </function>
</root>
牛逼,请问这是tinyxml的编码规则吗?
mujiok2003 2014-05-13
  • 打赏
  • 举报
回复
<root>
  <function name="UpdateRouteInfo" cmdid="500">
    <request existence="1" type="CVideoPacket&" name="pack" id="1"/>
    <response existence="0"/>
  </function>
  <function name="PushMsg" cmdid="501">
    <request  existence="1" type="CVideoPacket&"  name="pack" id="1"/>
    <response existence="0"/>
  </function>
</root>
luo6620378xu 2014-05-13
  • 打赏
  • 举报
回复
只能自己顶啊

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧