ÉϴΰÑÊý¾Ý¿â·ÃÎÊÀ๲Ïí³öÀ´ÁË£¬¼¸¸öͬÊÂÍøÉϸп®ÁËÒ»·¬£¬ÕæµÄûÓÐÏëµ½ÎÒ»¹±£Áô5ÄêǰµÄ´úÂ룬ÎÒ˵£¬´úÂë±¾À´¾ÍÊÇÓ¦¸Ã±»ÔĶÁºÍÑо¿µÄ£¬´úÂëͬÑù¾ßÓÐ˼ÏëºÍÇé½Ú£¬Õâ¾ÍÊÇÔÚÒ»Çî¶þ°×µÄÇé¿öϵÄÀúÊ·ºÍ¹ì¼£¡£ÅäÖùÜÀíͬÑùÒ²ÊÇһλ¾¡Ö°µÄÊ·¹Ù¡£
×ܽáһϣ¬Éϴθø³öµÄ´úÂëËäÈ»¿ÉÒÔÖ±½ÓÔËÐкÍʹÓ㬵ÄÈ·´æÔÚ´óÁ¿¿ÉÒԸĽøµÄµØ·½£¬ÏÖÔÚÁгö²¿·ÖÒâ¼û£º
1¡¢²»Ö§³Ö¶àÖÖÊý¾Ý¿âÁ¬½Ó£¨ÀýÈçOracle¡¢DB2¡¢Access£¬mySqlµÈ£©£»
2¡¢´úÂë·â×°²»³¹µ×£¬ÃæÏò¶ÔÏ󣬯ðÂëÓ¦¸Ã²ÉÈ¡¹¤³§·½·¨¡£
3¡¢²»Ö§³Ö¶àỊ̈߳¬Ã»ÓÐÁ¬½Ó³ØµÄ¸ÅÄͬһʱ¼äÖ»Äܽ¨Á¢Ò»¸öÁ¬½Ó£»
4¡¢¶ÔÓÚÊÂÎñ´¦Àí¿¼ÂDz»¹»£»
5¡¢Ã»Óп¼Âǵ½»á»°£»
6¡¢´úÂë±¾ÉíÐÔÄÜ¡¢Óï·¨·½Ã滹¿ÉÒÔ´æÔÚ´óÁ¿¸Ä½øµÄµØ·½¡£
......
Ò»ÏÂ×Ó¸ø³öºÃ¼¸Ê®Ìõ£¬¿´À´»¹ÊÇÓÐÈËÑо¿ÁË¡£ÕâÀï¾Í²»ÔÚÕ¹¿ªÁË£¬Óлú»áרÃÅ¿ª¸öרÌâÌÖÂÛÒ»ÏÂÊý¾Ý·ÃÎʲãµÄÉè¼ÆÎÊÌâ¡£
½ñÌì¸ø³öThroughoutCMS¼¼Êõ¹²ÏíϵÁеڶþÕ£ºXML·ÃÎÊÀ࣬¿ÖÅ ......
Ò». ²»Í¬XML¸ñʽÉϵIJîÒì
<Bil BilID="09120005">
<Product PID="XS000-3">
<Package Needuan="10"/>
<Package Needuan="8"/>
</Product>
</Bil>
Óë
<channel>
<title>Meerkat: An Open2 Wire Service</title>
<link>http://meerkat.oreillynet.com</link>
<description>
Meerkat is a Web-based syndicated content reader based on RSS ("Rich Site Summary").
RSS is a fantastic, simple-yet-powerful syndication system rapidly gaining momentum.
</description></channel></rss>
µÄ²îÒ죺
ǰÕßTAGºóÃæÓÐÄÚÈÝ£¬ÀýÈç<Bil ****></Bil>£¬ºóÔòÊÇ<title>text</title>
½áÊøµÄ·½Ê½²»Í¬<package ****/>
¶þ¡¢´¦ÀíÉϵIJîÒì
1. KXMLÔÚ½âÎöʱ£¬½«<Bil ****>ÈÏΪÊÇÒ»¸öSTART_TAG£»Òò´Ë£¬¶Ô
<Bil ****></Bil>µÄ½âÎö£º
½ô½Ó×ÅSTART_TAGµÄ¾ÍÊÇEND_TAG£¬ÖмäûÓÐTEXT£»¶ø
<title>text</title>µÄ½âÊÍÊÇ£º
START_TAG--->TEXT--->END_TAG
ÌáÈ¡<Bil ****>ÖÐ ......
1£©
XMLÊÇÒ»ÏîÈÈÃŵļ¼Êõ¡£ËüÖ®ËùÒÔÄܹ»ÒýÆðÈËÃǵÄÐËȤ£¬Ò»¸öÖ÷ÒªµÄÔÒòÔÚÓÚËüÊ®·ÖµÄ¼òµ¥£¬ÈËÃÇ¿ÉÒÔºÜÈÝÒ×µØÀí½âºÍʹÓÃËü¡£Ã¿Ò»¸ö³ÌÐòÔ±¶¼ÄÜÇáÒ׵ؿ´¶®Ò»¸öXMLÎļþ£¬Àí½âËü°üº¬µÄÄÚÈÝ¡£
.NETÖаüº¬Á˺ܶàÖ§³ÖXMLµÄÀ࣬ÕâЩÀàʹµÃ³ÌÐòԱʹÓÃXML±à³Ì¾ÍÈçͬÀí½âXMLÎļþÒ»Ñù¼òµ¥¡£ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒ½«¸ø³öÕâÑùµÄÒ»¸öÀàµÄʹÓÃʾÀý£¬Õâ¸öÀà¾ÍÊÇXmlTextWriterÀà¡£
XmlTextWriterÀàÔÊÐíÄ㽫XMLдµ½Ò»¸öÎļþÖÐÈ¥¡£Õâ¸öÀà°üº¬Á˺ܶ෽·¨ºÍÊôÐÔ£¬Ê¹ÓÃÕâЩÊôÐԺͷ½·¨¿ÉÒÔʹÄã¸üÈÝÒ׵ش¦ÀíXML¡£ÎªÁËʹÓÃÕâ¸öÀ࣬Äã±ØÐëÊ×ÏÈ´´½¨Ò»¸öеÄXmlTextWriter¶ÔÏó£¬È»ºóÄã¿ÉÒÔ½«XMLƬ¶Ï¼ÓÈëµ½Õâ¸ö¶ÔÏóÖС£Õâ¸öÀàÖаüº¬Á˲»Éٵķ½·¨ÓÃÓÚ½«¸÷ÖÖÀàÐ͵ÄXMLÔªËØÌí¼Óµ½XMLÎļþÖУ¬ÏÂ±í¸ø³öÁËÕâЩ·½·¨µÄÃû×ÖºÍÃèÊöÇé¿ö£º
·½·¨
ÃèÊö
WriteStartDocument
Êéд°æ±¾Îª“1.0”µÄ XML
ÉùÃ÷
WriteEndDocument
¹Ø±ÕÈκδò¿ªµÄÔªËØ»òÊôÐÔ
Close
¹Ø±ÕÁ÷
WriteDocType
д³ö¾ßÓÐÖ¸¶¨Ãû³ÆºÍ¿ÉÑ¡ÊôÐÔµÄ
DOCTYPE
ÉùÃ÷
WriteStartElement
д³öÖ¸¶¨µÄ¿ªÊ¼±ê¼Ç
WriteEndElement
¹Ø±ÕÒ»¸öÔªËØ
WriteFullEndElement
¹Ø±ÕÒ»¸öÔªËØ£¬²¢ÇÒ×ÜÊÇдÈëÍêÕûµÄ½áÊø±ê¼Ç
WriteElementString
д³ö°üº¬× ......
1£©
XMLÊÇÒ»ÏîÈÈÃŵļ¼Êõ¡£ËüÖ®ËùÒÔÄܹ»ÒýÆðÈËÃǵÄÐËȤ£¬Ò»¸öÖ÷ÒªµÄÔÒòÔÚÓÚËüÊ®·ÖµÄ¼òµ¥£¬ÈËÃÇ¿ÉÒÔºÜÈÝÒ×µØÀí½âºÍʹÓÃËü¡£Ã¿Ò»¸ö³ÌÐòÔ±¶¼ÄÜÇáÒ׵ؿ´¶®Ò»¸öXMLÎļþ£¬Àí½âËü°üº¬µÄÄÚÈÝ¡£
.NETÖаüº¬Á˺ܶàÖ§³ÖXMLµÄÀ࣬ÕâЩÀàʹµÃ³ÌÐòԱʹÓÃXML±à³Ì¾ÍÈçͬÀí½âXMLÎļþÒ»Ñù¼òµ¥¡£ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒ½«¸ø³öÕâÑùµÄÒ»¸öÀàµÄʹÓÃʾÀý£¬Õâ¸öÀà¾ÍÊÇXmlTextWriterÀà¡£
XmlTextWriterÀàÔÊÐíÄ㽫XMLдµ½Ò»¸öÎļþÖÐÈ¥¡£Õâ¸öÀà°üº¬Á˺ܶ෽·¨ºÍÊôÐÔ£¬Ê¹ÓÃÕâЩÊôÐԺͷ½·¨¿ÉÒÔʹÄã¸üÈÝÒ׵ش¦ÀíXML¡£ÎªÁËʹÓÃÕâ¸öÀ࣬Äã±ØÐëÊ×ÏÈ´´½¨Ò»¸öеÄXmlTextWriter¶ÔÏó£¬È»ºóÄã¿ÉÒÔ½«XMLƬ¶Ï¼ÓÈëµ½Õâ¸ö¶ÔÏóÖС£Õâ¸öÀàÖаüº¬Á˲»Éٵķ½·¨ÓÃÓÚ½«¸÷ÖÖÀàÐ͵ÄXMLÔªËØÌí¼Óµ½XMLÎļþÖУ¬ÏÂ±í¸ø³öÁËÕâЩ·½·¨µÄÃû×ÖºÍÃèÊöÇé¿ö£º
·½·¨
ÃèÊö
WriteStartDocument
Êéд°æ±¾Îª“1.0”µÄ XML
ÉùÃ÷
WriteEndDocument
¹Ø±ÕÈκδò¿ªµÄÔªËØ»òÊôÐÔ
Close
¹Ø±ÕÁ÷
WriteDocType
д³ö¾ßÓÐÖ¸¶¨Ãû³ÆºÍ¿ÉÑ¡ÊôÐÔµÄ
DOCTYPE
ÉùÃ÷
WriteStartElement
д³öÖ¸¶¨µÄ¿ªÊ¼±ê¼Ç
WriteEndElement
¹Ø±ÕÒ»¸öÔªËØ
WriteFullEndElement
¹Ø±ÕÒ»¸öÔªËØ£¬²¢ÇÒ×ÜÊÇдÈëÍêÕûµÄ½áÊø±ê¼Ç
WriteElementString
д³ö°üº¬× ......
Ò».Éú³Édocument¶ÔÏó¡£
import org.jdom.*;
import org.jdom.input.SAXBuilder;
public class ReportDocUtil {
public ReportDocUtil() {
}
/**
* <p>Description:covert xml file to Document</p>
* @param url ¸ñʽxmlÎļþµÄ´æ·ÅµÄÏà¶Ô·¾¶
* @return Document
* <p>Create Time: 2003-11-17</p>
*/
public static Document toDocument(String xmlFilePath)throws Exception {
Document document = null;
SAXBuilder saxBuilder = new SAXBuilder();
document = saxBuilder.build(xmlFilePath);
return document;
}
public static Document getXMLDocument(String xml)throws Exception{
Document document = null;
SAXBuilder saxBuilder = new SAXBuilder();
StringReader stringIn = new StringReader(xml);
&nb ......
XMLÎļþµÄ½âÎö££libxml¿âº¯Êý½âÊÍ
ÕªÒª
LibxmlÊÇÒ»¸öÓÐÃâ·ÑÐí¿ÉµÄÓÃÓÚ´¦ÀíXML¡¢¿ÉÒÔÇáËÉ¿çÔ½¶à¸öƽ̨µÄCÓïÑÔ¿â¡£Õâ¸öÖ¸ÄÏÌṩËüµÄ»ù±¾º¯ÊýµÄÀý×Ó¡£
Ð÷ÂÛ
Libxml ÊÇÒ»¸öʵÏÖ¶Á¡¢´´½¨¼°²Ù×ÝXMLÊý¾Ý¹¦ÄܵÄCÓïÑÔ¿â¡£Õâ¸öÖ¸ÄÏÌṩÀý×Ó´úÂë²¢¸ø³öËü»ù±¾¹¦ÄܵĽâÊÍ¡£ÔÚÕâ¸öÏîÄ¿µÄÖ÷Ò³ÉÏÓÐLibxml¼°¸ü¶à¹ØÓÚËü¿ÉÓõÄ×ÊÁÏ¡£°üº¬ÓÐÍêÕûµÄAPIÎĵµ¡£Õâ¸öÖ¸Äϲ¢²»ÄÜÌæ´úÕâЩÍêÕûµÄÎĵµ£¬µ«ÊDzûÃ÷¹¦ÄÜÐèҪʹÓÿâÀ´Íê³É»ù±¾²Ù×÷¡£
Õâ¸öÖ¸ÄÏ»ùÓÚÒ»¸ö¼òµ¥µÄXMLÓ¦Óã¬ËüʹÓÃÎÒдµÄһƪÎÄÕÂÉú³É£¬Ëü°üº¬ÓÐÔªÊý¾ÝºÍÎÄÕµÄÖ÷Ìå¡£
±¾Ö¸ÄÏÖеÄÀý×Ó´úÂëʾ·¶ÈçºÎ×öµ½£º
• ½âÎöÎĵµ
• È¡µÃÖ¸¶¨ÔªËصÄÎı¾
• Ìí¼ÓÒ»¸öÔªËØ¼°ËüµÄÄÚÈÝ
• Ìí¼ÓÒ»¸öÊôÐÔ
• È¡µÃÒ»¸öÊôÐÔµÄÖµ
Àý×ÓµÄÍêÕû´úÂë°üº¬ÔÚ¸½Â¼ÖÐ
Êý¾ÝÀàÐÍ
Libxml ¶¨ÒåÁËÐí¶àÊý¾ÝÀàÐÍ£¬ÎÒÃǽ«·´¸´Åöµ½ËüÃÇ£¬ËüÒþ²ØÁËÔÓÂÒµÄÀ´Ô´ÒÔÖÂÄã²»±Ø´¦ÀíËü³ý·ÇÄãÓÐÌØ¶¨µÄÐèÒª¡£xmlChar Ìæ´úchar,ʹÓÃUTF-8±àÂëµÄÒ»×Ö½Ú×Ö·û´®¡£Èç¹ûÄãµÄÊý¾ÝʹÓÃÆäËü±àÂ룬Ëü±ØÐ뱻ת»»µ½UTF-8²ÅÄÜʹÓÃlibxmlµÄº¯Êý¡£ÔÚlibxml±àÂëÖ§³ÖWEBÒ³ÃæÓиü¶à¹ØÓÚ±àÂëµÄÓÐÓÃÐÅÏ¢¡£
XmlDoc °üº¬ÓɽâÎöÎĵµ ......
½üÀ´×Ô¼ºÔÚ×öxmlµÄ½âÎöÆ÷¡£ÀûÓõ½ÁËcmarkupÀ࣬¾Íµ±×ö´æ´¢°É£¡ÓÐÐèÒªµÄÅóÓÑ¿ÉÒÔÃ鼸ÑÛ¡£
HTREEITEM itemTemp1,itemTemp2;
CString str1,str2;
char strtemp[100];
static bool result = true;
strtemp[0] = 0;
if (result)
{
xml.FindElem();
}
result = false;
str1 = xml.GetTagName();
strcpy(strtemp,(char*)(LPCTSTR)str1);
itemTemp1 = m_treectrl.InsertItem(str1,item);
if (xml.FindChildElem())
{
xml.IntoElem();
LoadXmlItem(itemTemp1);
xml.OutOfElem();
}
while(xml.FindElem())
{
str1 = xml.GetTagName();
strcpy(strtemp,(char*)(LPCTSTR)str1);
itemTemp2 = m_treectrl.InsertItem(str1,item);
if (xml.FindChildElem())
{
xml.IntoElem();
AfxMessageBox("cc");
LoadXmlItem(itemTemp2);
  ......