#include "head.h" //extern vector substation; //extern vector terminal; //extern vector base_voltage; //extern vector base_power; //extern vector connectivity_node; //extern vector acline_segment; //extern vector busbar_section; //extern vector disconnector; //extern vector power_transformer; //extern vector transformer_winding; //extern vector list1; //extern vector ground_disconnector; //extern vector composite_switch; //extern vector circuit; //extern vector bay; //extern vector connector; //extern vector fuse; //extern vector pole; //extern vector load_break_switch; //extern vector breaker; //extern vector ac_kind; //extern int i1; //extern int i2; //extern int i3; //extern int i4; //extern int i5; //extern int i6; //extern int i7; //extern int i8; //extern int i9; //extern int i10; //extern int i11; //extern int i12; //extern int i13; //extern int i14; //extern int i15; //extern int i16; //extern int i17; //extern int i18; //extern int i19; //extern QStringRef R1; #include "qt_readxml.h" bool Qt_readxml::XmlReaderreadFile(QIODevice *file) { setDevice(file); //std::cout<<"XmlReaderreadFile"<close(); return 0; } void Qt_readxml::XmlReaderFormList(int i,QString name1,QString id) { //std::cout<<"XmlReaderFormList"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(S.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "Substation") { substation.push_back(S); break; } } if(isStartElement()) { if(name()=="Naming.description") { S.description=readElementText(); } else if(name()=="Naming.name") { S.name=readElementText(); } else if(name()=="Substation.MemberOf_SubControlArea") { R1=attributes().value("resource"); S.MemberOf_SubControlArea_res.push_back(R1.toString()); } else if(name()=="GIS_type") { S.GIS_type=readElementText(); } } } QString name1="substation"; XmlReaderFormList(i1,name1,S.ID); i1++; } } void Qt_readxml::XmlReaderread_Terminal() { //std::cout<<"XmlReaderread_Terminal"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "Terminal") { terminal.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="Terminal.ConductingEquipment") { R1=attributes().value("resource"); T1.ConductingEquipment_res.push_back(R1.toString()); } else if(name()=="Terminal.ConnectivityNode") { R1=attributes().value("resource"); T1.ConnectivityNode_res.push_back(R1.toString()); } } } QString name1="terminal"; XmlReaderFormList(i2,name1,T1.ID); i2++; } } void Qt_readxml::XmlReaderread_BaseVoltage() { //std::cout<<"XmlReaderread_BaseVoltage"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "BaseVoltage") { base_voltage.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="nominalVoltage") { T1.nominalVoltage=readElementText().toDouble(); } else if(name()=="BaseVoltage.BasePower") { R1=attributes().value("resource"); T1.BasePower_res.push_back(R1.toString()); } } } QString name1="base_voltage"; XmlReaderFormList(i3,name1,T1.ID); i3++; } } void Qt_readxml::XmlReaderread_BasePower() { //std::cout<<"XmlReaderread_BasePower"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "BasePower") { base_power.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="BasePower.basePower") { T1.basePower=readElementText().toDouble(); } } } QString name1="base_power"; XmlReaderFormList(i4,name1,T1.ID); i4++; } } void Qt_readxml::XmlReaderread_ConnectivityNode() { //std::cout<<"XmlReaderread_ConnectivityNode"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "ConnectivityNode") { connectivity_node.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="MemberOf_EquipmentContainer") { R1=attributes().value("resource"); T1.MemberOf_EquipmentContainer_res.push_back(R1.toString()); } } } QString name1="connectivity_node"; XmlReaderFormList(i5,name1,T1.ID); i5++; } } void Qt_readxml::XmlReaderread_ACLineSegment() { //std::cout<<"XmlReaderread_ACLineSegment"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "ACLineSegment") { acline_segment.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="LongLength") { T1.LongLength=readElementText().toDouble(); } else if(name()=="Model") { T1.Model=readElementText(); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } else if(name()=="MemberOf_EquipmentContainer") { R1=attributes().value("resource"); T1.MemberOf_EquipmentContainer_res.push_back(R1.toString()); } else if(name()=="GIS_ID") { T1.GIS_ID=readElementText(); } } } QString name1="acline_segment"; XmlReaderFormList(i6,name1,T1.ID); i6++; } } void Qt_readxml::XmlReaderread_BusbarSection() { //std::cout<<"XmlReaderread_BusbarSection"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "BusbarSection") { busbar_section.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="Normal_Voltage") { T1.Normal_Voltage=readElementText(); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } else if(name()=="MemberOf_EquipmentContainer") { R1=attributes().value("resource"); T1.MemberOf_EquipmentContainer_res.push_back(R1.toString()); } } } QString name1="busbar_section"; XmlReaderFormList(i7,name1,T1.ID); i7++; } } void Qt_readxml::XmlReaderread_Disconnector() { //std::cout<<"XmlReaderread_Disconnector"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "Disconnector") { disconnector.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="Switch.normalOpen") { T1.normalOpen=readElementText(); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } else if(name()=="MemberOf_EquipmentContainer") { R1=attributes().value("resource"); T1.MemberOf_EquipmentContainer_res.push_back(R1.toString()); } else if(name()=="PowerSystemResource.Circuits") { R1=attributes().value("resource"); T1.Circuits_res.push_back(R1.toString()); } } } QString name1="disconnector"; XmlReaderFormList(i8,name1,T1.ID); i8++; } } void Qt_readxml::XmlReaderread_PowerTransformer() { //std::cout<<"XmlReaderread_PowerTransformer"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "PowerTransformer") { power_transformer.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="ratedMVA") { T1.ratedMVA=readElementText().toDouble(); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } else if(name()=="MemberOf_EquipmentContainer") { R1=attributes().value("resource"); T1.MemberOf_EquipmentContainer_res.push_back(R1.toString()); } else if(name()=="PowerSystemResource.Circuits") { R1=attributes().value("resource"); T1.Circuits_res.push_back(R1.toString()); } else if (name()=="Serial_Number") { T1.Serial_Number=readElementText(); } else if (name()=="Model") { T1.Model=readElementText(); } else if (name()=="Type") { if(readElementText()=="public") { T1.isPublic=true; } else { T1.isPublic=false; } } } } QString name1="power_transformer"; XmlReaderFormList(i9,name1,T1.ID); i9++; } } void Qt_readxml::XmlReaderread_TransformerWinding() { //std::cout<<"XmlReaderread_TransformerWinding"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "TransformerWinding") { transformer_winding.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="TransformerWinding.MemberOf_PowerTransformer") { R1=attributes().value("resource"); T1.MemberOf_PowerTransformer_res.push_back(R1.toString()); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } } } QString name1="transformer_winding"; XmlReaderFormList(i10,name1,T1.ID); i10++; } } void Qt_readxml::XmlReaderread_GroundDisconnector() { //std::cout<<"XmlReaderread_GroundDisconnector"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "GroundDisconnector") { ground_disconnector.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="Switch.normalOpen") { T1.normalOpen=readElementText(); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } else if(name()=="MemberOf_EquipmentContainer") { R1=attributes().value("resource"); T1.MemberOf_EquipmentContainer_res.push_back(R1.toString()); } else if(name()=="PowerSystemResource.Circuits") { R1=attributes().value("resource"); T1.Circuits_res.push_back(R1.toString()); } } } QString name1="ground_disconnector"; XmlReaderFormList(i11,name1,T1.ID); i11++; } } void Qt_readxml::XmlReaderread_CompositeSwitch() { //std::cout<<"XmlReaderread_CompositeSwitch"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "CompositeSwitch") { composite_switch.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="CompositeSwitchType") { T1.CompositeSwitchType=readElementText(); } else if(name()=="PowerSystemResource.Circuits") { R1=attributes().value("resource"); T1.Circuits_res.push_back(R1.toString()); } } } QString name1="composite_switch"; XmlReaderFormList(i12,name1,T1.ID); i12++; } } void Qt_readxml::XmlReaderread_Circuit() { //std::cout<<"XmlReaderread_Circuit"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "Circuit") { circuit.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="Substations") { R1=attributes().value("resource"); T1.Substations_res.push_back(R1.toString()); } } } QString name1="circuit"; XmlReaderFormList(i13,name1,T1.ID); i13++; } } void Qt_readxml::XmlReaderread_Bay() { //std::cout<<"XmlReaderread_Bay"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "Bay") { bay.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } else if(name()=="VoltageLevel.MemberOf_Substation") { R1=attributes().value("resource"); T1.MemberOf_Substation_res.push_back(R1.toString()); } } } QString name1="bay"; XmlReaderFormList(i14,name1,T1.ID); i14++; } } void Qt_readxml::XmlReaderread_Connector() { //std::cout<<"XmlReaderread_Connector"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "Connector") { connector.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="MemberOf_EquipmentContainer") { R1=attributes().value("resource"); T1.MemberOf_EquipmentContainer_res.push_back(R1.toString()); } } } QString name1="connector"; XmlReaderFormList(i15,name1,T1.ID); i15++; } } void Qt_readxml::XmlReaderread_Fuse() { // std::cout<<"XmlReaderread_Fuse"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "Fuse") { fuse.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="normalOpen") { T1.normalOpen=readElementText(); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } else if(name()=="PowerSystemResource.Circuits") { R1=attributes().value("resource"); T1.Circuits_res.push_back(R1.toString()); } } } QString name1="fuse"; XmlReaderFormList(i16,name1,T1.ID); i16++; } } void Qt_readxml::XmlReaderread_Pole() { //std::cout<<"XmlReaderread_Pole"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "Pole") { pole.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } else if(name()=="PowerSystemResource.Circuits") { R1=attributes().value("resource"); T1.Circuits_res.push_back(R1.toString()); } } } QString name1="pole"; XmlReaderFormList(i17,name1,T1.ID); i17++; } } void Qt_readxml::XmlReaderread_LoadBreakSwitch() { //std::cout<<"XmlReaderread_LoadBreakSwitch"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "LoadBreakSwitch" ) { load_break_switch.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="normalOpen") { T1.normalOpen=readElementText(); } else if(name()=="MemberOf_EquipmentContainer") { R1=attributes().value("resource"); T1.MemberOf_EquipmentContainer_res.push_back(R1.toString()); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } else if(name()=="PowerSystemResource.Circuits") { R1=attributes().value("resource"); T1.Circuits_res.push_back(R1.toString()); } } } QString name1="load_break_switch"; XmlReaderFormList(i18,name1,T1.ID); i18++; } } void Qt_readxml::XmlReaderread_Breaker() { //std::cout<<"XmlReaderread_Breaker"<::iterator it = find_if(list1.begin(), list1.end(), vector_finder(T1.ID)); //得到与ID号相对应的元素 if(it==list1.end()) { while(!atEnd()) { readNext(); if(isEndElement()) { if(name() == "Breaker" ) { breaker.push_back(T1); break; } } if(isStartElement()) { if(name()=="Naming.description") { T1.description=readElementText(); } else if(name()=="Naming.name") { T1.name=readElementText(); } else if(name()=="MemberOf_EquipmentContainer") { R1=attributes().value("resource"); T1.MemberOf_EquipmentContainer_res.push_back(R1.toString()); } else if(name()=="ConductingEquipment.BaseVoltage") { R1=attributes().value("resource"); T1.BaseVoltage_res.push_back(R1.toString()); } } } QString name1="breaker"; XmlReaderFormList(i19,name1,T1.ID); i19++; } }