parent
407fe62995
commit
8bb30a0940
|
|
@ -1,7 +1,7 @@
|
||||||
#include "BasicElementInfo.h"
|
#include "BasicElementInfo.h"
|
||||||
|
|
||||||
//#include <iostream>
|
#include <iostream>
|
||||||
BasicElementInfo::BasicElementInfo()
|
BasicElementInfo::BasicElementInfo(QObject *parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -12,6 +12,16 @@ bool BasicElementInfo::derivedParse(QXmlStreamReader& reader)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString BasicElementInfo::getID()
|
||||||
|
{
|
||||||
|
return this->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString BasicElementInfo::getName()
|
||||||
|
{
|
||||||
|
return this->name;
|
||||||
|
}
|
||||||
|
|
||||||
bool BasicElementInfo::parse(QXmlStreamReader &reader)
|
bool BasicElementInfo::parse(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -19,10 +29,11 @@ bool BasicElementInfo::parse(QXmlStreamReader &reader)
|
||||||
|
|
||||||
bool BasicElementInfo::parseBasicInfo(QXmlStreamReader &reader)
|
bool BasicElementInfo::parseBasicInfo(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
// std::cout<<"father"<<"\n";
|
|
||||||
QStringRef elementName;
|
QStringRef elementName;
|
||||||
QStringRef id;
|
QStringRef id;
|
||||||
elementName=reader.name();
|
elementName=reader.name();
|
||||||
|
this->name=elementName.toString();
|
||||||
|
this->id=id.toString();
|
||||||
qDebug()<<reader.name()<<"\n";
|
qDebug()<<reader.name()<<"\n";
|
||||||
if(reader.attributes().hasAttribute("rdf:ID"))
|
if(reader.attributes().hasAttribute("rdf:ID"))
|
||||||
{
|
{
|
||||||
|
|
@ -33,14 +44,12 @@ bool BasicElementInfo::parseBasicInfo(QXmlStreamReader &reader)
|
||||||
while(!reader.atEnd() && !reader.hasError())
|
while(!reader.atEnd() && !reader.hasError())
|
||||||
{
|
{
|
||||||
reader.readNext();
|
reader.readNext();
|
||||||
|
elementName=reader.name();
|
||||||
this->derivedParse(reader);
|
this->derivedParse(reader);
|
||||||
if(reader.isEndElement() && reader.name()==elementName)
|
if(reader.isEndElement() && reader.name()==elementName)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this->name=elementName;
|
|
||||||
this->id=id;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,22 @@
|
||||||
#define BASICELEMENTINFO_H
|
#define BASICELEMENTINFO_H
|
||||||
|
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QStringRef>
|
|
||||||
#include <QXmlStreamReader>
|
#include <QXmlStreamReader>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QObject>
|
||||||
class BasicElementInfo;
|
class BasicElementInfo;
|
||||||
//typedef bool (BasicElementInfo::*derivedParseHandle)(QXmlStreamReader &reader);
|
//typedef bool (BasicElementInfo::*derivedParseHandle)(QXmlStreamReader &reader);
|
||||||
class BasicElementInfo{
|
class BasicElementInfo:public QObject{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
BasicElementInfo();
|
explicit BasicElementInfo(QObject *parent = 0);
|
||||||
virtual bool parse(QXmlStreamReader &reader);
|
virtual bool parse(QXmlStreamReader &reader);
|
||||||
|
QString getID();
|
||||||
|
QString getName();
|
||||||
protected:
|
protected:
|
||||||
bool parseBasicInfo(QXmlStreamReader &reader);
|
bool parseBasicInfo(QXmlStreamReader &reader);
|
||||||
QStringRef name;
|
QString name;
|
||||||
QStringRef id;
|
QString id;
|
||||||
// derivedParseHandle derivedParse;
|
// derivedParseHandle derivedParse;
|
||||||
virtual bool derivedParse(QXmlStreamReader &reader);
|
virtual bool derivedParse(QXmlStreamReader &reader);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "aclinesegment.h"
|
#include "aclinesegment.h"
|
||||||
|
|
||||||
ACLineSegment::ACLineSegment():isTerminalA(true)
|
ACLineSegment::ACLineSegment(QObject *parent):BasicElementInfo(parent),isTerminalA(true)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
class ACLineSegment:public BasicElementInfo
|
class ACLineSegment:public BasicElementInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ACLineSegment();
|
explicit ACLineSegment(QObject *parent = 0);
|
||||||
virtual bool parse(QXmlStreamReader &reader);
|
virtual bool parse(QXmlStreamReader &reader);
|
||||||
protected:
|
protected:
|
||||||
QStringRef terminalA;
|
QStringRef terminalA;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "breaker.h"
|
#include "breaker.h"
|
||||||
|
|
||||||
Breaker::Breaker()
|
Breaker::Breaker(QObject *parent):BasicElementInfo(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -10,7 +10,7 @@ bool Breaker::derivedParse(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
QString terminal;
|
QString terminal;
|
||||||
terminal=reader.attributes().value("rdf:resource").toString();
|
terminal=reader.attributes().value("rdf:resource").toString();
|
||||||
this->terminalA=terminal.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->terminalA=terminal.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalA<<"\n";
|
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalA<<"\n";
|
||||||
this->isTerminalA=false;
|
this->isTerminalA=false;
|
||||||
}
|
}
|
||||||
|
|
@ -18,14 +18,14 @@ bool Breaker::derivedParse(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
QString terminal;
|
QString terminal;
|
||||||
terminal=reader.attributes().value("rdf:resource").toString();
|
terminal=reader.attributes().value("rdf:resource").toString();
|
||||||
this->terminalB=terminal.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->terminalB=terminal.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalB<<"\n";
|
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalB<<"\n";
|
||||||
}
|
}
|
||||||
if("Equipment.MemberOf_EquipmentContainer"==reader.name() && reader.attributes().hasAttribute("rdf:resource"))
|
if("Equipment.MemberOf_EquipmentContainer"==reader.name() && reader.attributes().hasAttribute("rdf:resource"))
|
||||||
{
|
{
|
||||||
QString ss;
|
QString ss;
|
||||||
ss=reader.attributes().value("rdf:resource").toString();
|
ss=reader.attributes().value("rdf:resource").toString();
|
||||||
this->equipmentContainer=ss.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->equipmentContainer=ss.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"Equipment.MemberOf_EquipmentContainer "<<this->equipmentContainer<<"\n";
|
qDebug()<<"got "<<"Equipment.MemberOf_EquipmentContainer "<<this->equipmentContainer<<"\n";
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@
|
||||||
class Breaker:public BasicElementInfo
|
class Breaker:public BasicElementInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Breaker();
|
explicit Breaker(QObject *parent = 0);
|
||||||
virtual bool parse(QXmlStreamReader& reader);
|
virtual bool parse(QXmlStreamReader& reader);
|
||||||
protected:
|
protected:
|
||||||
QStringRef terminalA;
|
QString terminalA;
|
||||||
QStringRef terminalB;
|
QString terminalB;
|
||||||
QStringRef equipmentContainer;
|
QString equipmentContainer;
|
||||||
virtual bool derivedParse(QXmlStreamReader& reader);
|
virtual bool derivedParse(QXmlStreamReader& reader);
|
||||||
private:
|
private:
|
||||||
bool isTerminalA;
|
bool isTerminalA;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "busbarsection.h"
|
#include "busbarsection.h"
|
||||||
|
#include <iostream>
|
||||||
BusbarSection::BusbarSection()
|
BusbarSection::BusbarSection(QObject *parent):BasicElementInfo(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -11,7 +11,7 @@ bool BusbarSection::derivedParse(QXmlStreamReader& reader)
|
||||||
{
|
{
|
||||||
QString terminal;
|
QString terminal;
|
||||||
terminal=reader.attributes().value("rdf:resource").toString();
|
terminal=reader.attributes().value("rdf:resource").toString();
|
||||||
this->terminal=terminal.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->terminal=terminal.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminal<<"\n";
|
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminal<<"\n";
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -19,5 +19,7 @@ bool BusbarSection::derivedParse(QXmlStreamReader& reader)
|
||||||
|
|
||||||
bool BusbarSection::parse(QXmlStreamReader& reader)
|
bool BusbarSection::parse(QXmlStreamReader& reader)
|
||||||
{
|
{
|
||||||
|
// std::cout<<"BusbarSection"<<std::endl;
|
||||||
return this->parseBasicInfo(reader);
|
return this->parseBasicInfo(reader);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@
|
||||||
class BusbarSection:public BasicElementInfo
|
class BusbarSection:public BasicElementInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BusbarSection();
|
explicit BusbarSection(QObject *parent = 0);
|
||||||
virtual bool parse(QXmlStreamReader& reader);
|
virtual bool parse(QXmlStreamReader& reader);
|
||||||
protected:
|
protected:
|
||||||
QStringRef terminal;
|
QString terminal;
|
||||||
virtual bool derivedParse(QXmlStreamReader& reader);
|
virtual bool derivedParse(QXmlStreamReader& reader);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "compensator.h"
|
#include "compensator.h"
|
||||||
|
|
||||||
Compensator::Compensator()
|
Compensator::Compensator(QObject *parent):BasicElementInfo(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -11,7 +11,7 @@ bool Compensator::derivedParse(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
QString terminal;
|
QString terminal;
|
||||||
terminal=reader.attributes().value("rdf:resource").toString();
|
terminal=reader.attributes().value("rdf:resource").toString();
|
||||||
this->terminal=terminal.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->terminal=terminal.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminal<<"\n";
|
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminal<<"\n";
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@
|
||||||
class Compensator:public BasicElementInfo
|
class Compensator:public BasicElementInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Compensator();
|
explicit Compensator(QObject *parent = 0);
|
||||||
virtual bool parse(QXmlStreamReader& reader);
|
virtual bool parse(QXmlStreamReader& reader);
|
||||||
protected:
|
protected:
|
||||||
virtual bool derivedParse(QXmlStreamReader& reader);
|
virtual bool derivedParse(QXmlStreamReader& reader);
|
||||||
private:
|
private:
|
||||||
QStringRef terminal;
|
QString terminal;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // COMPENSATOR_H
|
#endif // COMPENSATOR_H
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "disconnector.h"
|
#include "disconnector.h"
|
||||||
|
|
||||||
Disconnector::Disconnector()
|
Disconnector::Disconnector(QObject *parent):BasicElementInfo(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -11,7 +11,7 @@ bool Disconnector::derivedParse(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
QString terminal;
|
QString terminal;
|
||||||
terminal=reader.attributes().value("rdf:resource").toString();
|
terminal=reader.attributes().value("rdf:resource").toString();
|
||||||
this->terminalA=terminal.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->terminalA=terminal.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalA<<"\n";
|
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalA<<"\n";
|
||||||
this->isTerminalA=false;
|
this->isTerminalA=false;
|
||||||
}
|
}
|
||||||
|
|
@ -19,14 +19,14 @@ bool Disconnector::derivedParse(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
QString terminal;
|
QString terminal;
|
||||||
terminal=reader.attributes().value("rdf:resource").toString();
|
terminal=reader.attributes().value("rdf:resource").toString();
|
||||||
this->terminalB=terminal.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->terminalB=terminal.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalB<<"\n";
|
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalB<<"\n";
|
||||||
}
|
}
|
||||||
if("Equipment.MemberOf_EquipmentContainer"==reader.name() && reader.attributes().hasAttribute("rdf:resource"))
|
if("Equipment.MemberOf_EquipmentContainer"==reader.name() && reader.attributes().hasAttribute("rdf:resource"))
|
||||||
{
|
{
|
||||||
QString ss;
|
QString ss;
|
||||||
ss=reader.attributes().value("rdf:resource").toString();
|
ss=reader.attributes().value("rdf:resource").toString();
|
||||||
this->equipmentContainer=ss.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->equipmentContainer=ss.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"Equipment.MemberOf_EquipmentContainer "<<this->equipmentContainer<<"\n";
|
qDebug()<<"got "<<"Equipment.MemberOf_EquipmentContainer "<<this->equipmentContainer<<"\n";
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@
|
||||||
class Disconnector:public BasicElementInfo
|
class Disconnector:public BasicElementInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Disconnector();
|
explicit Disconnector(QObject *parent = 0);
|
||||||
virtual bool parse(QXmlStreamReader& reader);
|
virtual bool parse(QXmlStreamReader& reader);
|
||||||
protected:
|
protected:
|
||||||
QStringRef terminalA;
|
QString terminalA;
|
||||||
QStringRef terminalB;
|
QString terminalB;
|
||||||
QStringRef equipmentContainer;
|
QString equipmentContainer;
|
||||||
virtual bool derivedParse(QXmlStreamReader& reader);
|
virtual bool derivedParse(QXmlStreamReader& reader);
|
||||||
private:
|
private:
|
||||||
bool isTerminalA;
|
bool isTerminalA;
|
||||||
|
|
|
||||||
|
|
@ -11,52 +11,88 @@ bool ElementHashtable::child(QXmlStreamReader &reader)
|
||||||
|
|
||||||
QStringRef elementName;
|
QStringRef elementName;
|
||||||
elementName=reader.name();
|
elementName=reader.name();
|
||||||
|
QString id;
|
||||||
|
if(reader.attributes().hasAttribute("rdf:ID"))
|
||||||
|
{
|
||||||
|
id=reader.attributes().value("rdf:ID").toString();
|
||||||
|
}
|
||||||
BasicElementInfo *pointer=NULL;
|
BasicElementInfo *pointer=NULL;
|
||||||
if(elementName=="BusbarSection")
|
if(elementName=="BusbarSection")
|
||||||
{
|
{
|
||||||
pointer=new BusbarSection;
|
pointer=new BusbarSection(this);
|
||||||
pointer->parse(reader);
|
pointer->parse(reader);
|
||||||
}
|
}
|
||||||
if(elementName=="Terminal")
|
if(elementName=="Terminal")
|
||||||
{
|
{
|
||||||
pointer=new Terminal;
|
pointer=new Terminal(this);
|
||||||
pointer->parse(reader);
|
pointer->parse(reader);
|
||||||
}
|
}
|
||||||
if(elementName=="ACLineSegment")
|
if(elementName=="ACLineSegment")
|
||||||
{
|
{
|
||||||
pointer=new ACLineSegment;
|
pointer=new ACLineSegment(this);
|
||||||
pointer->parse(reader);
|
pointer->parse(reader);
|
||||||
}
|
}
|
||||||
if(elementName=="Breaker")
|
if(elementName=="Breaker")
|
||||||
{
|
{
|
||||||
pointer=new Breaker;
|
pointer=new Breaker(this);
|
||||||
pointer->parse(reader);
|
pointer->parse(reader);
|
||||||
}
|
}
|
||||||
if(elementName=="Compensator")
|
if(elementName=="Compensator")
|
||||||
{
|
{
|
||||||
pointer=new Compensator;
|
pointer=new Compensator(this);
|
||||||
pointer->parse(reader);
|
pointer->parse(reader);
|
||||||
}
|
}
|
||||||
if(elementName=="Disconnector")
|
if(elementName=="Disconnector")
|
||||||
{
|
{
|
||||||
pointer=new Disconnector;
|
pointer=new Disconnector(this);
|
||||||
pointer->parse(reader);
|
pointer->parse(reader);
|
||||||
}
|
}
|
||||||
if(elementName=="PowerTransformer")
|
if(elementName=="PowerTransformer")
|
||||||
{
|
{
|
||||||
pointer=new PowerTransformer;
|
pointer=new PowerTransformer(this);
|
||||||
pointer->parse(reader);
|
pointer->parse(reader);
|
||||||
}
|
}
|
||||||
if(elementName=="SynchronousMachine")
|
if(elementName=="SynchronousMachine")
|
||||||
{
|
{
|
||||||
pointer=new SynchronousMachine;
|
pointer=new SynchronousMachine(this);
|
||||||
pointer->parse(reader);
|
pointer->parse(reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(pointer && id!="")
|
||||||
if(pointer)
|
|
||||||
{
|
{
|
||||||
this->eleHT[elementName.toString()]=*pointer;
|
if(this->eleHT.contains(id))
|
||||||
|
{
|
||||||
|
std::cout<<"contain"<<std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
this->eleHT[id]=pointer;
|
||||||
|
// std::cout<<id.toStdString()<<std::endl;
|
||||||
|
// std::cout<<this->eleHT[id]->getName().toStdString()<<std::endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// std::cout<<elementName.toString().toStdString()<<std::endl;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ElementHashtable::goPath()
|
||||||
|
{
|
||||||
|
const QHash<QString,BasicElementInfo*> &ht=this->eleHT;
|
||||||
|
QList<QString> keys;
|
||||||
|
keys=ht.keys();
|
||||||
|
std::cout<<keys.length()<<std::endl;
|
||||||
|
for(QList<QString>::Iterator ite=keys.begin();
|
||||||
|
ite!=keys.end();
|
||||||
|
ite++)
|
||||||
|
{
|
||||||
|
// std::cout<<ite->toStdString()<<std::endl;
|
||||||
|
BasicElementInfo *p=ht[*ite];
|
||||||
|
// std::cout<<p->getName().toStdString()<<std::endl;
|
||||||
|
if(p->getName()=="BusbarSection")
|
||||||
|
{
|
||||||
|
std::cout<<"BusbarSection"<<"\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -78,15 +114,17 @@ bool ElementHashtable::parse(const QString& xmlPath)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
this->child(reader);//处理根元素下的第一级子元素,也就是Substation这一类。
|
this->child(reader);//处理根元素下的第一级子元素,也就是Substation这一类。
|
||||||
}
|
}
|
||||||
loop++;
|
loop++;
|
||||||
if(loop>20){
|
if(loop>600000){
|
||||||
// break;
|
// break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
// const QHash<QString,BasicElementInfo*> &ht=this->eleHT;
|
||||||
|
// std::cout<<ht["AC-1300969"]->getName().toString().toStdString()<<std::endl;
|
||||||
|
|
||||||
if(reader.hasError())
|
if(reader.hasError())
|
||||||
{
|
{
|
||||||
qDebug()<<reader.errorString()<<"\n";
|
qDebug()<<reader.errorString()<<"\n";
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,10 @@ class ElementHashtable : public QObject
|
||||||
public:
|
public:
|
||||||
explicit ElementHashtable(QObject *parent = 0);
|
explicit ElementHashtable(QObject *parent = 0);
|
||||||
bool parse(const QString& xmlPath);
|
bool parse(const QString& xmlPath);
|
||||||
|
bool goPath();
|
||||||
private:
|
private:
|
||||||
bool child(QXmlStreamReader &reader);
|
bool child(QXmlStreamReader &reader);
|
||||||
QHash<QString,BasicElementInfo> eleHT;
|
QHash<QString,BasicElementInfo *> eleHT;
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ int main(int argc, char *argv[])
|
||||||
QCoreApplication a(argc, argv);
|
QCoreApplication a(argc, argv);
|
||||||
ElementHashtable eleReader;
|
ElementHashtable eleReader;
|
||||||
eleReader.parse("D:/Project/佛山项目/佛山收资/exportmodel_pw/df8003/df8600/exportfiles/exportmodel_pw.xml");
|
eleReader.parse("D:/Project/佛山项目/佛山收资/exportmodel_pw/df8003/df8600/exportfiles/exportmodel_pw.xml");
|
||||||
|
// eleReader.parse("D:/Project/佛山项目/佛山收资/按元素分/BusbarSectionb.xml");
|
||||||
|
eleReader.goPath();
|
||||||
// RegexExtract regexExt;
|
// RegexExtract regexExt;
|
||||||
// regexExt.extract("D:/Project/佛山项目/佛山收资/exportmodel_pw/df8003/df8600/exportfiles/exportmodel_pw.xml");
|
// regexExt.extract("D:/Project/佛山项目/佛山收资/exportmodel_pw/df8003/df8600/exportfiles/exportmodel_pw.xml");
|
||||||
// regexExt.exportBlocks("ThermalGeneratingUnit.xml");
|
// regexExt.exportBlocks("ThermalGeneratingUnit.xml");
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,5 @@ INPUT(
|
||||||
./debug/powertransformer.o
|
./debug/powertransformer.o
|
||||||
./debug/synchronousmachine.o
|
./debug/synchronousmachine.o
|
||||||
./debug/moc_elementhashtable.o
|
./debug/moc_elementhashtable.o
|
||||||
|
./debug/moc_BasicElementInfo.o
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,5 @@ INPUT(
|
||||||
./release/powertransformer.o
|
./release/powertransformer.o
|
||||||
./release/synchronousmachine.o
|
./release/synchronousmachine.o
|
||||||
./release/moc_elementhashtable.o
|
./release/moc_elementhashtable.o
|
||||||
|
./release/moc_BasicElementInfo.o
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "powertransformer.h"
|
#include "powertransformer.h"
|
||||||
|
|
||||||
PowerTransformer::PowerTransformer()
|
PowerTransformer::PowerTransformer(QObject *parent):BasicElementInfo(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -11,7 +11,7 @@ bool PowerTransformer::derivedParse(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
QString terminal;
|
QString terminal;
|
||||||
terminal=reader.attributes().value("rdf:resource").toString();
|
terminal=reader.attributes().value("rdf:resource").toString();
|
||||||
this->terminalA=terminal.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->terminalA=terminal.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalA<<"\n";
|
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalA<<"\n";
|
||||||
this->isTerminalA=false;
|
this->isTerminalA=false;
|
||||||
}
|
}
|
||||||
|
|
@ -19,14 +19,14 @@ bool PowerTransformer::derivedParse(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
QString terminal;
|
QString terminal;
|
||||||
terminal=reader.attributes().value("rdf:resource").toString();
|
terminal=reader.attributes().value("rdf:resource").toString();
|
||||||
this->terminalB=terminal.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->terminalB=terminal.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalB<<"\n";
|
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminalB<<"\n";
|
||||||
}
|
}
|
||||||
if("Equipment.MemberOf_EquipmentContainer"==reader.name() && reader.attributes().hasAttribute("rdf:resource"))
|
if("Equipment.MemberOf_EquipmentContainer"==reader.name() && reader.attributes().hasAttribute("rdf:resource"))
|
||||||
{
|
{
|
||||||
QString ss;
|
QString ss;
|
||||||
ss=reader.attributes().value("rdf:resource").toString();
|
ss=reader.attributes().value("rdf:resource").toString();
|
||||||
this->equipmentContainer=ss.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->equipmentContainer=ss.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"Equipment.MemberOf_EquipmentContainer "<<this->equipmentContainer<<"\n";
|
qDebug()<<"got "<<"Equipment.MemberOf_EquipmentContainer "<<this->equipmentContainer<<"\n";
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@
|
||||||
class PowerTransformer:public BasicElementInfo
|
class PowerTransformer:public BasicElementInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PowerTransformer();
|
explicit PowerTransformer(QObject *parent = 0);
|
||||||
virtual bool parse(QXmlStreamReader& reader);
|
virtual bool parse(QXmlStreamReader& reader);
|
||||||
protected:
|
protected:
|
||||||
QStringRef terminalA;
|
QString terminalA;
|
||||||
QStringRef terminalB;
|
QString terminalB;
|
||||||
QStringRef equipmentContainer;
|
QString equipmentContainer;
|
||||||
virtual bool derivedParse(QXmlStreamReader& reader);
|
virtual bool derivedParse(QXmlStreamReader& reader);
|
||||||
private:
|
private:
|
||||||
bool isTerminalA;
|
bool isTerminalA;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "synchronousmachine.h"
|
#include "synchronousmachine.h"
|
||||||
|
|
||||||
SynchronousMachine::SynchronousMachine()
|
SynchronousMachine::SynchronousMachine(QObject *parent):BasicElementInfo(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -10,7 +10,7 @@ bool SynchronousMachine::derivedParse(QXmlStreamReader &reader)
|
||||||
{
|
{
|
||||||
QString terminal;
|
QString terminal;
|
||||||
terminal=reader.attributes().value("rdf:resource").toString();
|
terminal=reader.attributes().value("rdf:resource").toString();
|
||||||
this->terminal=terminal.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->terminal=terminal.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminal<<"\n";
|
qDebug()<<"got "<<"ConductingEquipment.Terminals "<<this->terminal<<"\n";
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@
|
||||||
class SynchronousMachine:public BasicElementInfo
|
class SynchronousMachine:public BasicElementInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SynchronousMachine();
|
explicit SynchronousMachine(QObject *parent = 0);
|
||||||
virtual bool parse(QXmlStreamReader& reader);
|
virtual bool parse(QXmlStreamReader& reader);
|
||||||
protected:
|
protected:
|
||||||
QStringRef terminal;
|
QString terminal;
|
||||||
virtual bool derivedParse(QXmlStreamReader& reader);
|
virtual bool derivedParse(QXmlStreamReader& reader);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
|
||||||
Terminal::Terminal()
|
Terminal::Terminal(QObject *parent):BasicElementInfo(parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -10,7 +10,7 @@ bool Terminal::derivedParse(QXmlStreamReader& reader)
|
||||||
{
|
{
|
||||||
QString cn;
|
QString cn;
|
||||||
cn=reader.attributes().value("rdf:resource").toString();
|
cn=reader.attributes().value("rdf:resource").toString();
|
||||||
this->connectivityNode=cn.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->connectivityNode=cn.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"Terminal.ConnectivityNode "<<this->connectivityNode<<"\n";
|
qDebug()<<"got "<<"Terminal.ConnectivityNode "<<this->connectivityNode<<"\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -18,7 +18,7 @@ bool Terminal::derivedParse(QXmlStreamReader& reader)
|
||||||
{
|
{
|
||||||
QString ce;
|
QString ce;
|
||||||
ce=reader.attributes().value("rdf:resource").toString();
|
ce=reader.attributes().value("rdf:resource").toString();
|
||||||
this->conductingEquipment=ce.replace("#","").leftRef(-1);//返回整个字符串的Ref
|
this->conductingEquipment=ce.replace("#","").leftRef(-1).toString();//返回整个字符串的Ref
|
||||||
qDebug()<<"got "<<"Terminal.ConductingEquipment "<<this->conductingEquipment<<"\n";
|
qDebug()<<"got "<<"Terminal.ConductingEquipment "<<this->conductingEquipment<<"\n";
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,12 @@
|
||||||
class Terminal:public BasicElementInfo
|
class Terminal:public BasicElementInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Terminal();
|
explicit Terminal(QObject *parent = 0);
|
||||||
virtual bool parse(QXmlStreamReader& reader);
|
virtual bool parse(QXmlStreamReader& reader);
|
||||||
protected:
|
protected:
|
||||||
virtual bool derivedParse(QXmlStreamReader& reader);
|
virtual bool derivedParse(QXmlStreamReader& reader);
|
||||||
QStringRef conductingEquipment;
|
QString conductingEquipment;
|
||||||
QStringRef connectivityNode;
|
QString connectivityNode;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TERMINAL_H
|
#endif // TERMINAL_H
|
||||||
|
|
|
||||||
|
|
@ -45,5 +45,5 @@ HEADERS += \
|
||||||
synchronousmachine.h
|
synchronousmachine.h
|
||||||
|
|
||||||
#release{
|
#release{
|
||||||
#DEFINES += QT_NO_DEBUG_OUTPUT
|
DEFINES += QT_NO_DEBUG_OUTPUT
|
||||||
#}
|
#}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue