void COption::ReadXML( CXMLReader &xml ) { CString name; xml.intoTag(); // Set the default colours (ignoring the registry) m_oColors.Init(); while (xml.nextTag( name )) { if (name == "FONT") { // !! xml.getChildData( CurrentFont ); } else if (name == "STYLE") { // !! xml.getChildData( CurrentStyle ); } else if (name == "GRID") { xml.getChildData( GridShow ); } else if (name == "UNITS") { xml.getChildData( Units ); } else { m_oColors.ReadXML( xml, name ); } } xml.outofTag(); }
void CDrawLine::LoadXML( CXMLReader &xml ) { switch (xtype) { case xBus: case xWire: if (xml.getAttribute( _T("style"), m_style )) { m_style = m_pDesign->GetOptions()->GetNewStyleNumber(m_style); m_use_default_style = FALSE; } else { m_use_default_style = TRUE; } break; default: m_use_default_style = FALSE; xml.getAttribute( _T("style"), m_style ); m_style = m_pDesign->GetOptions()->GetNewStyleNumber(m_style); break; } xml.getAttribute( _T("a"), m_point_a ); xml.getAttribute( _T("b"), m_point_b ); }
void CDrawMetaFile::LoadXML( CXMLReader &xml ) { xml.getAttribute( _T("a"), m_point_a ); xml.getAttribute( _T("b"), m_point_b ); xml.getAttribute( _T("id"), m_metafile ); m_metafile = m_pDesign->GetOptions()->GetNewMetaFileNumber(m_metafile); }
void CDrawPower::LoadXML(CXMLReader &xml) { xml.getAttribute(_T("pos"), m_point_a); xml.getAttribute(_T("which"), which); xml.getAttribute(_T("direction"), dir); xml.getChildData(str); m_point_b = m_point_a; TextPos = m_point_a; }
void CDrawSquare::LoadXML( CXMLReader &xml ) { xml.getAttribute( _T("a"), m_point_a ); xml.getAttribute( _T("b"), m_point_b ); xml.getAttribute( _T("style"), Style ); xml.getAttribute( _T("fill"), Fill ); Style = m_pDesign->GetOptions()->GetNewStyleNumber(Style); Fill = m_pDesign->GetOptions()->GetNewFillStyleNumber(Fill); }
int wmain() { //const TCHAR * pFileName = _T( "AttributeLoad.xml" ); const TCHAR * pFileName = _T( "ElementLoad.xml" ); //const TCHAR * pFileName = _T( "expat_test.vcproj" ); //const TCHAR * pFileName = _T( "vcproj.xml" ); CXMLDocument * pDoc = NULL; { CXMLReader clReader; pDoc = clReader.Load( pFileName ); if( pDoc == NULL ) { ::wprintf( L"Parse error at file: %s, line %lu:\n%s\n", pFileName, clReader.GetErrorLine(), clReader.GetErrorString() ); return 0; } } DumpAllXMLElement( CXMLDocument::GetElement( pDoc->GetRoot(), _T( "Root" ) ) ); { CXMLElement * pElement = CXMLDocument::GetElement( pDoc->GetRoot(), _T( "/Root/Monster" ) ); DumpAllXMLElement( pElement ); CXMLElement * pNotFound = CXMLDocument::GetElement( pDoc->GetRoot(), _T( "/Rootadf/Monster" ) ); if( pNotFound != NULL ) { wprintf( L"Found! Name: %s\n", pNotFound->GetName() ); } const TCHAR * pText = CXMLDocument::GetText( pElement, _T( "Name/" ) ); if( pText != NULL ) { wprintf( L"Name Text: %s\n", pText ); } const TCHAR * pValue = CXMLDocument::GetAttr( pElement, _T( "/Name" ), _T( "Attr" ) ); if( pValue != NULL ) { wprintf( L"Name Attr: %s\n", pValue ); } } return 0; }
//------------------------------------------------------------------------- void CUserColor::ReadXML(CXMLReader& xml, CString sTagName) { // Is this a colour? for (TNamesMapIterator i = m_colNames.begin(); i != m_colNames.end(); i++) { int nID = i->first; CString sName = i->second; COLORREF crColor; if (sTagName == sName) { xml.getChildData(crColor); m_colColorRef[nID] = crColor; break; } } }
////// Load a design from a file, loaded design will be selected ////// BOOL CTinyCadDoc::ReadFileXML(CXMLReader &xml, BOOL Details, drawingCollection &drawing, BOOL AlreadyStarted) { try { // Read in the first item... CString name; bool sheets = false; if (!AlreadyStarted) { xml.nextTag( name ); if (name == "TinyCADSheets") { xml.intoTag(); sheets = true; // We must search for the first TinyCAD section while (xml.nextTag( name ) && name != GetXMLTag()) { } } // Check we are at the right point if (name != GetXMLTag()) { Message(IDS_ABORTVERSION,MB_ICONEXCLAMATION); return FALSE; } } BOOL ResetMerge = TRUE; xml.intoTag(); while ( xml.nextTag( name ) ) { // Save the old layer setting CDrawingObject *obj = NULL; if (name == "DETAILS" ) { if (Details) { GetDetails().ReadXML( xml, m_snap ); } } else if (name == "NAME") { if (Details) { xml.getChildData( m_sheet_name ); } } else if (name == "GRID") { if (Details) { m_snap.LoadXML( xml ); } } else if (name == "FONT") { if (ResetMerge) { theOptions.ResetMerge(); ResetMerge = FALSE; } theOptions.LoadFontXML(xml); } else if (name == "STYLE") { if (ResetMerge) { theOptions.ResetMerge(); ResetMerge = FALSE; } theOptions.LoadStyleXML(xml); } else if (name == "FILL") { if (ResetMerge) { theOptions.ResetMerge(); ResetMerge = FALSE; } theOptions.LoadFillStyleXML(xml); } else if (name == "META" || name == "IMAGE") { if (ResetMerge) { theOptions.ResetMerge(); ResetMerge = FALSE; } theOptions.LoadMetaFileXML(xml); } else if (name == "SYMBOLDEF") { if (ResetMerge) { theOptions.ResetMerge(); ResetMerge = FALSE; } theOptions.LoadSymbolXML(xml); } else if (name == "OPTIONS") { theOptions.ReadXML( xml ); } else if (name == CDrawBusSlash::GetXMLTag()) { obj = new CDrawBusSlash(this); } else if (name == CDrawTag::GetXMLTag()) { obj = new CDrawTag(this); } else if (name == CDrawJunction::GetXMLTag()) { obj = new CDrawJunction(this); } else if (name == CDrawLine::GetXMLTag(xBus)) { obj = new CDrawLine(this, xBus); } else if (name == CDrawLine::GetXMLTag(xWire)) { obj = new CDrawLine(this, xWire); } else if (name == CDrawLine::GetXMLTag(xLineEx2)) { obj = new CDrawLine(this, xLineEx2); } else if (name == CDrawMetaFile::GetXMLTag()) { obj = new CDrawMetaFile(this); } else if (name == CDrawMethod::GetXMLTag()) { obj = new CDrawMethod(this); } else if (name == CDrawHierarchicalSymbol::GetXMLTag()) { obj = new CDrawHierarchicalSymbol(this); } else if (name == CDrawNoConnect::GetXMLTag()) { obj = new CDrawNoConnect(this); } else if (name == CDrawPin::GetXMLTag()) { obj = new CDrawPin(this); } else if (name == CDrawRuler::GetXMLTag()) { obj = new CDrawRuler(this, FALSE); } else if (name == CDrawSquare::GetXMLTag( TRUE )) { obj = new CDrawSquare(this, xSquareEx3); } else if (name == CDrawSquare::GetXMLTag( FALSE )) { obj = new CDrawSquare(this, xCircleEx3); } else if (name == CDrawText::GetXMLTag(xTextEx2)) { obj = new CDrawText(this, xTextEx2); } else if (name == CDrawText::GetXMLTag(xBusNameEx)) { obj = new CDrawText(this, xBusNameEx); } else if (name == CDrawLabel::GetXMLTag()) { obj = new CDrawLabel(this); } else if (name == CDrawPolygon::GetXMLTag()) { obj = new CDrawPolygon(this); } else if (name == CDrawPower::GetXMLTag()) { obj = new CDrawPower(this); } if (obj != NULL) { // Load this object... obj->LoadXML( xml ); // Now add object to linked list drawing.insert( drawing.end(), obj ); } } xml.outofTag(); if (sheets) { xml.outofTag(); } } catch( CException *e ) { e->ReportError(); e->Delete(); return FALSE; } return drawing.size() > 0; }
BOOL CApp::LoadRegExFile() { if(!m_pEMML){ return FALSE; } CXMLReader* XML = new CXMLReader(); //Tag refrences returned by the XMLREADER class XML_TAG xRoot,xEquivs,xContents,xExpression; XML_ATT xMatchingPattern,xReplaceString; int iLoop; LPCTSTR pRegEx = g_pRegExPath; if(!_memicmp(pRegEx,L"FILE://",14)) pRegEx+=7; if(!XML->ParseFile(pRegEx)==SUCCESS){ return FALSE; } xRoot = XML->GetElement(L"RegularEx",0); //load all of the equiv regular expressions if(!xRoot){ return FALSE; } xEquivs = XML->GetChildElement(xRoot,L"Equivs",0); if(xEquivs){ for(iLoop = 0;;iLoop++) { xExpression = XML->GetChildElement(xEquivs,L"Expression",iLoop); if(!xExpression){ break;//no more Equiv expressions } xMatchingPattern = XML->GetAttrByName(xExpression,L"PatternEx"); xReplaceString = XML->GetAttrByName(xExpression,L"replaceEX"); if(!xMatchingPattern || !xReplaceString){ Log(PB_LOG_ERROR,L"Illegal XML tag",L"CApp::LoadRegExFile",__LINE__,L"Core"); return FALSE; } if(!m_pEMML->AddRegExPair_HE(xMatchingPattern->lpValue,xReplaceString->lpValue)){ Log(PB_LOG_ERROR,L"Could not add regEx to EMML",L"CApp::LoadRegExFile",__LINE__,L"Core"); return FALSE; } //Log(PB_LOG_INFO,xMatchingPattern->lpValue,xReplaceString->lpValue,__LINE__,L"LoadRegExFile"); } } xContents = XML->GetChildElement(xRoot,L"Contents",0); //load all of the content regular expressions if(xContents){ for(iLoop = 0;;iLoop++) { xExpression = XML->GetChildElement(xContents,L"Expression",iLoop); if(!xExpression){ break;//no more Equiv expressions } xMatchingPattern = XML->GetAttrByName(xExpression,L"PatternEx"); xReplaceString = XML->GetAttrByName(xExpression,L"replaceEX"); if(!xMatchingPattern || !xReplaceString){ Log(PB_LOG_ERROR,L"Illegal XML tag",L"CApp::LoadRegExFile",__LINE__,L"Core"); return FALSE; } if(!m_pEMML->AddRegExPair_CT(xMatchingPattern->lpValue,xReplaceString->lpValue)){ Log(PB_LOG_ERROR,L"Could not add regEx to EMML",L"CApp::LoadRegExFile",__LINE__,L"Core"); return FALSE; } //Log(PB_LOG_INFO,xMatchingPattern->lpValue,xReplaceString->lpValue,__LINE__,L"LoadRegExFile"); } } delete XML; return TRUE; }