RasterProcessTool/Toolbox/KJ135WBJYAlgInterfaceToolbox/WBFZAlgComponetXmlParaseOpe...

172 lines
4.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "WBFZAlgComponetXmlParaseOperator.h"
WBFZAlgComponetXmlParamenterItem::WBFZAlgComponetXmlParamenterItem(QDomElement* itemparameter, QObject* parent) :QObject(parent)
{
if (nullptr == itemparameter) {
qDebug() << "itemparameter is nullptr.";
return;
}
this->ParaName = itemparameter->firstChildElement("ParaName").isNull() ? QString() : itemparameter->firstChildElement("ParaName").text();
this->ParaChsName = itemparameter->firstChildElement("ParaChsName").isNull() ? QString() : itemparameter->firstChildElement("ParaChsName").text();
this->Description = itemparameter->firstChildElement("Description").isNull() ? QString() : itemparameter->firstChildElement("Description").text();
this->Datatype = itemparameter->firstChildElement("DataType").isNull() ? QString() : itemparameter->firstChildElement("DataType").text();
this->ParaType = itemparameter->firstChildElement("ParaType").isNull() ? QString() : itemparameter->firstChildElement("ParaType").text();
this->ValueStr = itemparameter->firstChildElement("ParaValue").isNull() ? QString() : itemparameter->firstChildElement("ParaValue").text();
}
WBFZAlgComponetXmlParamenterItem::~WBFZAlgComponetXmlParamenterItem()
{
}
WBFZAlgComponetXmlParaseOperator::WBFZAlgComponetXmlParaseOperator(QObject* parent) :QObject(parent)
{
}
WBFZAlgComponetXmlParaseOperator::~WBFZAlgComponetXmlParaseOperator()
{
}
void WBFZAlgComponetXmlParaseOperator::loadXmlFile(const QString& fileName)
{
this->xmlFilePath = fileName;
this->parseXmlFile();
}
void WBFZAlgComponetXmlParaseOperator::parseXmlFile()
{
// 1. Load the XML file
QFile file(xmlFilePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "Failed to open XML file.";
return;
}
// 2. Create a QDomDocument object
QDomDocument doc;
if (!doc.setContent(&file)) {
qDebug() << "Failed to parse XML file.";
file.close();
return;
}
// 3. Close the file
file.close();
// 4. Get the root element
QDomElement root = doc.documentElement();
// 5. Get the child elements of the root
QDomNodeList childNodes = root.childNodes();
// 6. get the workspace path node
QDomNodeList workspacePathNodes = root.elementsByTagName("WorkSpace");
if (workspacePathNodes.count() > 0) {
QDomElement workspacePathElement = workspacePathNodes.at(0).toElement();
this->workSpacePath = workspacePathElement.text();
}
else {
qDebug() << "WorkspacePath not found.";
return;
}
// 7. get Root/AlgCompt/Inputs <20>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>Parameter<65>ӽڵ<D3BD>
QDomNodeList InputsNodes = root.elementsByTagName("Inputs");
QDomNodeList parameterNodes = InputsNodes.at(0).toElement().elementsByTagName("Parameter");
if (parameterNodes.count() > 0) {
for (int i = 0; i < parameterNodes.count(); ++i) {
QDomElement parameterElement = parameterNodes.at(i).toElement();
WBFZAlgComponetXmlParamenterItem* item = new WBFZAlgComponetXmlParamenterItem(&parameterElement,this);
this->ParameterList.append(item);
qDebug() << "read Parameter Name:" << item->getParaName();
if (item->getParaName().isEmpty()) {
QMessageBox::warning(nullptr, u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>xml<6D>ļ<EFBFBD><C4BC><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>");
qDebug() << "read Parameter Name Error:" << item->getParaName();
return;
}
}
}
else {
qDebug() << "Parameter not found.";
return;
}
}
void WBFZAlgComponetXmlParaseOperator::displayParsedData()
{
}
QString WBFZAlgComponetXmlParaseOperator::getWorkSpacePath() const
{
return this->workSpacePath;
}
void WBFZAlgComponetXmlParaseOperator::setWorkSpacePath(const QString& path)
{
this->workSpacePath = path;
}
QList<WBFZAlgComponetXmlParamenterItem*> WBFZAlgComponetXmlParaseOperator::getParameterList() const
{
return ParameterList;
}
void WBFZAlgComponetXmlParaseOperator::setParameterList(const QList<WBFZAlgComponetXmlParamenterItem*>& list)
{
this->ParameterList = list;
}
QString WBFZAlgComponetXmlParamenterItem::getParaName() const
{
return this->ParaName;
}
void WBFZAlgComponetXmlParamenterItem::setParaName(const QString& name)
{
this->ParaName = name;
}
QString WBFZAlgComponetXmlParamenterItem::getParaChsName() const
{
return this->ParaChsName;
}
void WBFZAlgComponetXmlParamenterItem::setParaChsName(const QString& name)
{
this->ParaChsName = name;
}
QString WBFZAlgComponetXmlParamenterItem::getDescription() const
{
return this->Description;
}
void WBFZAlgComponetXmlParamenterItem::setDescription(const QString& description)
{
this->Description = description;
}
QString WBFZAlgComponetXmlParamenterItem::getDatatype() const
{
return this->Datatype;
}
void WBFZAlgComponetXmlParamenterItem::setDatatype(const QString& datatype)
{
this->Datatype = datatype;
}
QString WBFZAlgComponetXmlParamenterItem::getParaType() const
{
return this->ParaType;
}
void WBFZAlgComponetXmlParamenterItem::setParaType(const QString& type)
{
this->ParaType = type;
}
QString WBFZAlgComponetXmlParamenterItem::getValueStr() const
{
return this->ValueStr;
}
void WBFZAlgComponetXmlParamenterItem::setValueStr(const QString& value)
{
this->ValueStr = value;
}