void test()
    {
        QDomDocument doc("doc");
        QByteArray data = "<div><p>Of course, &ldquo;Jason.&rdquo; My thoughts, exactly.</p></div>";

        QString sErrorMsg;
        int errLine, errCol;

        if (!doc.setContent(data, &sErrorMsg, &errLine, &errCol)) {
            qDebug() << sErrorMsg;
            qDebug() << errLine << ":" << errCol;
            return;
        }

        QDomNodeList pList = doc.elementsByTagName("p");
        for (int i = 0; i < pList.size(); i++)
        {
            QDomNode p = pList.at(i);
            while (!p.isNull()) {
                QDomElement e = p.toElement(); 
                if (!e.isNull()) {
                    QByteArray ba = e.text().toUtf8(); //Here, there is no left and right quota marks anymore.

                }
                p = p.nextSibling();
            }
        }

    }

मैं एक HTML वाक्यांश को &ldquo; और &rdquo; के साथ पार्स कर रहा हूं। कोड बिना कोटा चिह्न के QByteArray ba = e.text().toUtf8(); तक चलता है।

मैं उन्हें कैसे रखूं?

1
Zhang 27 पद 2019, 11:36

1 उत्तर

    QTextDocument text;
    text.setHtml("&lt;&gt;&quot;");
    qDebug() << text.toPlainText();

मुझे इस तरह से मिला, कम से कम मुझे हर बच निकले एचटीएमएल चरित्र को बदलने के लिए हार्डकोड नहीं करना है।

0
Zhang 31 पद 2019, 07:26