QT : XML 파일 읽기 및 DOM 파서를 사용하여 파싱

사용자 5603723

나는 xml에 그다지 좋지 않지만 기본 xml 파일은 이와 같이 보입니다.

<MAIN_HEADER>

  <HEADER>
    <TITLE>my_title</TITLE>
    <AUTOR>DNL</AUTOR>
    <NAME>John</NAME>
    <AGE>abc</AGE>
    <SEX>male</SEX>
    <PLACE>abc</PLACE>
    <INI_FILE>abc</INI_FILE>

  </HEADER>

내가 원하는 것은 2-3 개의 태그 (예 : NAME & SEX)를 찾아 다른 변수에 속성 ​​(John, Male)을 저장하는 것입니다.

지금까지 xml 파일을 읽을 수있었습니다.

void MainWindow::XMLParser()
{
        QString path=MainWindow::getWorkingDirectory()+"\\0_Config\\";
        QString string;
        string = path + ui->ConfigFiles_combo->currentText(); \\THIS IS WHERE´IT DETERMINES WHICH XML FILE IT IS
        qDebug()<<string;
        QDomDocument document;
        //load the file
        QFile file(string);
        if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
        {
            qDebug()<<"Failed to open the file";

        }

        else
        {
            if(!document.setContent(false))
            {
                qDebug()<<"Failed to load document";

            }
            file.close();
        }
        QDomElement root = document.firstChildElement();
        qDebug()<<"finished";

}

정확한 태그를 검색하고 다른 변수에 저장하려면 어떻게해야합니까?

정복자

setContent(false)또 있어요? 방금 The Badger 의 코드를 복사 한 것 같습니다 . 이 시도.

void MainWindow::XMLParser()
{
    // don't worry about path separator, Qt will take of it
    QString string = MainWindow::getWorkingDirectory() + "/0_Config/" + ui->ConfigFiles_combo->currentText();
    qDebug()<<string;
    QDomDocument document;
    //load the file
    QFile xmlFile(string);
    if (!xmlFile.exists() || !xmlFile.open(QFile::ReadOnly | QFile::Text)) {
        qDebug() << "Check your file";
        return;
    }
    QDomDocument domDocument;
    domDocument.setContent(&xmlFile);
    QDomElement topElement = domDocument.documentElement();
    QDomNode domNode = topElement.firstChild();
    while (!domNode.isNull()) {
        QDomElement domElement = domNode.toElement();
        if (!domElement.isNull()) {
            //qDebug() << domElement.tagName();
            if (domElement.tagName() == "HEADER") {
                QDomNode node = domElement.firstChild();
                while (!node.isNull()) {
                    QDomElement element = node.toElement();
                    if (!element.isNull()) {
                        const QString tagName(element.tagName());
                        if (tagName == "NAME") {
                            qDebug() << "Name is:" << element.text();
                        } else if (tagName == "SEX") {
                            qDebug() << "Sex is:" << element.text();
                        }
                    }
                    node = node.nextSibling();
                }
            }
        }
        domNode = domNode.nextSibling();
    }
}

이것은 내 콘솔 출력입니다.

Name is: "John"
Sex is: "male"
Name is: "Doe"
Sex is: "male"

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++에서 QDomElement 및 태그를 사용하여 XML 파일 읽기

분류에서Dev

DOM 및 PHP를 사용하여 XML 파일에 항목 추가

분류에서Dev

DOM 파서를 사용하여 XML로부터 코멘트를 읽기

분류에서Dev

Python을 사용하여 XML 파일에서 속성 읽기 및 사용

분류에서Dev

Qt를 사용하여 .cmd 파일 출력에서 Echo 읽기

분류에서Dev

PHP에서 DOM 파서를 사용하여 xml 문서의 태그 및 내용 가져 오기

분류에서Dev

TinyXML2를 사용하여 C ++에서 XML 파일 읽기

분류에서Dev

JQuery를 사용하여 XML 파일 내에서 태그 읽기

분류에서Dev

LINQ를 사용하여 XML 파일에서 읽기

분류에서Dev

XML 파일에서 JAVA를 사용하여 데이터 읽기

분류에서Dev

SAXReader를 사용하여 xml 파일에서 요소 읽기

분류에서Dev

sed를 사용하여 xml 파일에서 값 찾기 및 바꾸기

분류에서Dev

C sharp를 사용하여 XML 파일의 일부 읽기

분류에서Dev

XML 파일에서 제거 및 읽기

분류에서Dev

Java를 사용하여 CSV 파일 읽기 및 쓰기

분류에서Dev

C # 데이터 세트를 사용하여 xml 파일 읽기

분류에서Dev

filestream 및 streamreader를 사용하여 C #으로 파일 읽기

분류에서Dev

C # LINQ를 사용하여 CSV 파일 읽기 및 필터링

분류에서Dev

Android에서 DOM 파서를 사용하여 특정 XML을 파싱 할 수 있습니까?

분류에서Dev

Java에서 DOM 파서를 사용하여 XML 파일에서 doctype, xml 버전 및 인코딩을 선언하는 방법은 무엇입니까?

분류에서Dev

C에서 libpng를 사용하여 PNG 파일 읽기 및 쓰기

분류에서Dev

C ++의 파일에서 구분 기호를 사용하여 int 및 string 읽기

분류에서Dev

플라스크를 사용하여 서버에 json 파일 읽기 및 쓰기

분류에서Dev

pdfplumber 및 Paramiko를 사용하여 SFTP 서버에서 PDF 파일 읽기

분류에서Dev

fscanf 및 sscanf를 사용하여 파일에서 형식화 된 입력 읽기

분류에서Dev

C에서 dirent.h를 사용하여 파일 읽기 및 선택

분류에서Dev

Python 및 Javascript를 사용하여 Json 파일에서 읽고 쓰기

분류에서Dev

Qt Creator를 사용하여 컴파일 및 실행하기 위해 C ++ 파일 추가

분류에서Dev

문자열 일치를 사용하여 파일 읽기 및 기능 적용

Related 관련 기사

  1. 1

    C ++에서 QDomElement 및 태그를 사용하여 XML 파일 읽기

  2. 2

    DOM 및 PHP를 사용하여 XML 파일에 항목 추가

  3. 3

    DOM 파서를 사용하여 XML로부터 코멘트를 읽기

  4. 4

    Python을 사용하여 XML 파일에서 속성 읽기 및 사용

  5. 5

    Qt를 사용하여 .cmd 파일 출력에서 Echo 읽기

  6. 6

    PHP에서 DOM 파서를 사용하여 xml 문서의 태그 및 내용 가져 오기

  7. 7

    TinyXML2를 사용하여 C ++에서 XML 파일 읽기

  8. 8

    JQuery를 사용하여 XML 파일 내에서 태그 읽기

  9. 9

    LINQ를 사용하여 XML 파일에서 읽기

  10. 10

    XML 파일에서 JAVA를 사용하여 데이터 읽기

  11. 11

    SAXReader를 사용하여 xml 파일에서 요소 읽기

  12. 12

    sed를 사용하여 xml 파일에서 값 찾기 및 바꾸기

  13. 13

    C sharp를 사용하여 XML 파일의 일부 읽기

  14. 14

    XML 파일에서 제거 및 읽기

  15. 15

    Java를 사용하여 CSV 파일 읽기 및 쓰기

  16. 16

    C # 데이터 세트를 사용하여 xml 파일 읽기

  17. 17

    filestream 및 streamreader를 사용하여 C #으로 파일 읽기

  18. 18

    C # LINQ를 사용하여 CSV 파일 읽기 및 필터링

  19. 19

    Android에서 DOM 파서를 사용하여 특정 XML을 파싱 할 수 있습니까?

  20. 20

    Java에서 DOM 파서를 사용하여 XML 파일에서 doctype, xml 버전 및 인코딩을 선언하는 방법은 무엇입니까?

  21. 21

    C에서 libpng를 사용하여 PNG 파일 읽기 및 쓰기

  22. 22

    C ++의 파일에서 구분 기호를 사용하여 int 및 string 읽기

  23. 23

    플라스크를 사용하여 서버에 json 파일 읽기 및 쓰기

  24. 24

    pdfplumber 및 Paramiko를 사용하여 SFTP 서버에서 PDF 파일 읽기

  25. 25

    fscanf 및 sscanf를 사용하여 파일에서 형식화 된 입력 읽기

  26. 26

    C에서 dirent.h를 사용하여 파일 읽기 및 선택

  27. 27

    Python 및 Javascript를 사용하여 Json 파일에서 읽고 쓰기

  28. 28

    Qt Creator를 사용하여 컴파일 및 실행하기 위해 C ++ 파일 추가

  29. 29

    문자열 일치를 사용하여 파일 읽기 및 기능 적용

뜨겁다태그

보관