user-0 提问: 关于tinyxml2 插入字符串的疑问

回复:
user: user-1
content: 你要理解转义的用途, 只有转义之后, <和>才能正常读出来, 如果不转义, <>就是一个新的节点.

user: user-2
content: 你想实现XML注入攻击？

user: user-2
content: 仅供参考：//+-------------------------------------------------------------------------  //  //  Method:     CSpecialCharHashTable::CSpecialCharHashTable  //  //  Synopsis:   Constructor  //  //--------------------------------------------------------------------------    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);  }

user: user-0
content: 引用 3 楼 steedhorse 的回复:不转义的话，概念上应该算“创建新结点”，而不是“入字符串”。  <data name="xxx">      Hello<TinyXml>Hello TinyXml .... </data>  对 是插入新的节点，但是节点的内容是一个字符串，目前是因为 xml内置了‘<’ '>'  '&' 等等好多的字符，这些放不进去，如果要插入这些已经预定义好的字符，那么我应该做些什么

user: user-0
content: 引用 3 楼 steedhorse 的回复:不转义的话，概念上应该算“创建新结点”，而不是“入字符串”。  <data name="xxx">      Hello<TinyXml>Hello TinyXml .... </data>

user: user-3
content: 不转义的话，概念上应该算“创建新结点”，而不是“入字符串”。

user: user-0
content: 引用 1 楼 zhao4zhong1 的回复:你想实现XML注入攻击？  就是单纯的想把其中一个节点的内容拿出来，然后单独给他加密压缩之后再把加密的内容放回去