格式化后如何获取所需数据 [英] How to get the desired data after format

查看:83
本文介绍了格式化后如何获取所需数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I have a data like this :-

<pre lang="text"><string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;DataCaptureSettings&gt;&lt;ModuleSettings&gt;&lt;capture_local_dir&gt;c:\&lt;/capture_local_dir&gt;&lt;capture_log_dir&gt;c:\log&lt;/capture_log_dir&gt;&lt;capture_log_level&gt;debug&lt;/capture_log_level&gt;&lt;capture_request_interval&gt;2&lt;/capture_request_interval&gt;&lt;capture_connection_interval&gt;2&lt;/capture_connection_interval&gt;&lt;smtp_server_name&gt;n1&lt;/smtp_server_name&gt;&lt;smtp_server_port&gt;80&lt;/smtp_server_port&gt;&lt;/ModuleSettings&gt;&lt;Machines&gt;&lt;Machine&gt;&lt;MachineId&gt;0022&lt;/MachineId&gt;&lt;AccountId&gt;1&lt;/AccountId&gt;&lt;location_code&gt;LOC_100&lt;/location_code&gt;&lt;Make&gt;Nipro&lt;/Make&gt;&lt;Model&gt;Model1&lt;/Model&gt;&lt;SerialNumber&gt;126649E&lt;/SerialNumber&gt;&lt;IpAddress&gt;10.10.10.10&lt;/IpAddress&gt;&lt;Port&gt;80&lt;/Port&gt;&lt;/Machine&gt;&lt;Machine&gt;&lt;MachineId&gt;3000&lt;/MachineId&gt;&lt;AccountId&gt;1&lt;/AccountId&gt;&lt;location_code&gt;LOC_100&lt;/location_code&gt;&lt;Make&gt;Make3&lt;/Make&gt;&lt;Model&gt;Model3&lt;/Model&gt;&lt;SerialNumber&gt;SN3&lt;/SerialNumber&gt;&lt;IpAddress&gt;30.30.30.30&lt;/IpAddress&gt;&lt;Port&gt;80&lt;/Port&gt;&lt;/Machine&gt;&lt;/Machines&gt;&lt;/DataCaptureSettings&gt;</string> </pre>

With some modification i want a data like this:-
Can anyone please tell what to do?


<pre lang="text"><?xml version="1.0" encoding="UTF-8"?><DataCaptureSesstings><ModuleSettings><account_id name="id">1</account_id><capture_local_dir>c:</capture_local_dir><capture_log_dir>c:log</capture_log_dir><capture_log_level>debug</capture_log_level><capture_request_interval>2</capture_request_interval><capture_connection_interval>2</capture_connection_interval><smtp_server_name>n1</smtp_server_name><smtp_server_port>80</smtp_server_port><smtp_email_sender>s1</smtp_email_sender><smtp_email_sender_password>p1</smtp_email_sender_password></ModuleSettings><MachineList><Machine><MachineId>0022</MachineId><Make>Make1</Make><Model>Model1</Model><SerialNumber>SN1</SerialNumber><IpAddress>10.10.10.10</IpAddress><Port>80</Port></Machine><Machine><MachineId>3000</MachineId><Make>Make3</Make><Model>Model3</Model><SerialNumber>SN3</SerialNumber><IpAddress>30.30.30.30</IpAddress><Port>80</Port></Machine></MachineList></DataCaptureSesstings> </pre>

推荐答案

如果字符串不包含保留字符以外的其他XML实体,也没有Unicode点,则可以使用CStringT类用字符替换实体:
If the string does not contain other XML entities than those for reserved characters and no Unicode points, you may use the CStringT class to replace the entities by characters:
CString ReplaceEntities(LPCTSTR lpszHtml)
{
    CString s(lpszHtml);
    s.Replace(_T("&gt;"), _T(">"));
    s.Replace(_T("&lt;"), _T("<"));
    s.Replace(_T("&quot;"), _T("\""));
    s.Replace(_T("&apos;"), _T("'"));
    s.Replace(_T("&amp;"), _T("&")); // Perform this replacement as the last one
    return s;
}


这篇关于格式化后如何获取所需数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆