1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2016 The Qt Company Ltd. 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of the QtXml module of the Qt Toolkit. 7 ** 8 ** $QT_BEGIN_LICENSE:LGPL$ 9 ** Commercial License Usage 10 ** Licensees holding valid commercial Qt licenses may use this file in 11 ** accordance with the commercial license agreement provided with the 12 ** Software or, alternatively, in accordance with the terms contained in 13 ** a written agreement between you and The Qt Company. For licensing terms 14 ** and conditions see https://www.qt.io/terms-conditions. For further 15 ** information use the contact form at https://www.qt.io/contact-us. 16 ** 17 ** GNU Lesser General Public License Usage 18 ** Alternatively, this file may be used under the terms of the GNU Lesser 19 ** General Public License version 3 as published by the Free Software 20 ** Foundation and appearing in the file LICENSE.LGPL3 included in the 21 ** packaging of this file. Please review the following information to 22 ** ensure the GNU Lesser General Public License version 3 requirements 23 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. 24 ** 25 ** GNU General Public License Usage 26 ** Alternatively, this file may be used under the terms of the GNU 27 ** General Public License version 2.0 or (at your option) the GNU General 28 ** Public license version 3 or any later version approved by the KDE Free 29 ** Qt Foundation. The licenses are as published by the Free Software 30 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 31 ** included in the packaging of this file. Please review the following 32 ** information to ensure the GNU General Public License requirements will 33 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and 34 ** https://www.gnu.org/licenses/gpl-3.0.html. 35 ** 36 ** $QT_END_LICENSE$ 37 ** 38 ****************************************************************************/ 39 40 #ifndef QDOM_H 41 #define QDOM_H 42 43 #include <QtXml/qtxmlglobal.h> 44 #include <QtCore/qstring.h> 45 46 QT_BEGIN_NAMESPACE 47 48 49 #ifndef QT_NO_DOM 50 51 class QIODevice; 52 class QTextStream; 53 54 class QXmlInputSource; 55 class QXmlReader; 56 57 class QDomDocumentPrivate; 58 class QDomDocumentTypePrivate; 59 class QDomDocumentFragmentPrivate; 60 class QDomNodePrivate; 61 class QDomNodeListPrivate; 62 class QDomImplementationPrivate; 63 class QDomElementPrivate; 64 class QDomNotationPrivate; 65 class QDomEntityPrivate; 66 class QDomEntityReferencePrivate; 67 class QDomProcessingInstructionPrivate; 68 class QDomAttrPrivate; 69 class QDomCharacterDataPrivate; 70 class QDomTextPrivate; 71 class QDomCommentPrivate; 72 class QDomCDATASectionPrivate; 73 class QDomNamedNodeMapPrivate; 74 class QDomImplementationPrivate; 75 76 class QDomNodeList; 77 class QDomElement; 78 class QDomText; 79 class QDomComment; 80 class QDomCDATASection; 81 class QDomProcessingInstruction; 82 class QDomAttr; 83 class QDomEntityReference; 84 class QDomDocument; 85 class QDomNamedNodeMap; 86 class QDomDocument; 87 class QDomDocumentFragment; 88 class QDomDocumentType; 89 class QDomImplementation; 90 class QDomNode; 91 class QDomEntity; 92 class QDomNotation; 93 class QDomCharacterData; 94 class QXmlStreamReader; 95 96 class Q_XML_EXPORT QDomImplementation 97 { 98 public: 99 QDomImplementation(); 100 QDomImplementation(const QDomImplementation&); 101 ~QDomImplementation(); 102 QDomImplementation& operator= (const QDomImplementation&); 103 bool operator== (const QDomImplementation&) const; 104 bool operator!= (const QDomImplementation&) const; 105 106 // functions 107 bool hasFeature(const QString& feature, const QString& version) const; 108 QDomDocumentType createDocumentType(const QString& qName, const QString& publicId, const QString& systemId); 109 QDomDocument createDocument(const QString& nsURI, const QString& qName, const QDomDocumentType& doctype); 110 111 enum InvalidDataPolicy { AcceptInvalidChars = 0, DropInvalidChars, ReturnNullNode }; 112 static InvalidDataPolicy invalidDataPolicy(); 113 static void setInvalidDataPolicy(InvalidDataPolicy policy); 114 115 // Qt extension 116 bool isNull(); 117 118 private: 119 QDomImplementationPrivate* impl; 120 QDomImplementation(QDomImplementationPrivate*); 121 122 friend class QDomDocument; 123 }; 124 125 class Q_XML_EXPORT QDomNode 126 { 127 public: 128 enum NodeType { 129 ElementNode = 1, 130 AttributeNode = 2, 131 TextNode = 3, 132 CDATASectionNode = 4, 133 EntityReferenceNode = 5, 134 EntityNode = 6, 135 ProcessingInstructionNode = 7, 136 CommentNode = 8, 137 DocumentNode = 9, 138 DocumentTypeNode = 10, 139 DocumentFragmentNode = 11, 140 NotationNode = 12, 141 BaseNode = 21,// this is not in the standard 142 CharacterDataNode = 22 // this is not in the standard 143 }; 144 145 enum EncodingPolicy 146 { 147 EncodingFromDocument = 1, 148 EncodingFromTextStream = 2 149 }; 150 151 QDomNode(); 152 QDomNode(const QDomNode&); 153 QDomNode& operator= (const QDomNode&); 154 bool operator== (const QDomNode&) const; 155 bool operator!= (const QDomNode&) const; 156 ~QDomNode(); 157 158 // DOM functions 159 QDomNode insertBefore(const QDomNode& newChild, const QDomNode& refChild); 160 QDomNode insertAfter(const QDomNode& newChild, const QDomNode& refChild); 161 QDomNode replaceChild(const QDomNode& newChild, const QDomNode& oldChild); 162 QDomNode removeChild(const QDomNode& oldChild); 163 QDomNode appendChild(const QDomNode& newChild); 164 bool hasChildNodes() const; 165 QDomNode cloneNode(bool deep = true) const; 166 void normalize(); 167 bool isSupported(const QString& feature, const QString& version) const; 168 169 // DOM read-only attributes 170 QString nodeName() const; 171 NodeType nodeType() const; 172 QDomNode parentNode() const; 173 QDomNodeList childNodes() const; 174 QDomNode firstChild() const; 175 QDomNode lastChild() const; 176 QDomNode previousSibling() const; 177 QDomNode nextSibling() const; 178 QDomNamedNodeMap attributes() const; 179 QDomDocument ownerDocument() const; 180 QString namespaceURI() const; 181 QString localName() const; 182 bool hasAttributes() const; 183 184 // DOM attributes 185 QString nodeValue() const; 186 void setNodeValue(const QString&); 187 QString prefix() const; 188 void setPrefix(const QString& pre); 189 190 // Qt extensions 191 bool isAttr() const; 192 bool isCDATASection() const; 193 bool isDocumentFragment() const; 194 bool isDocument() const; 195 bool isDocumentType() const; 196 bool isElement() const; 197 bool isEntityReference() const; 198 bool isText() const; 199 bool isEntity() const; 200 bool isNotation() const; 201 bool isProcessingInstruction() const; 202 bool isCharacterData() const; 203 bool isComment() const; 204 205 /** 206 * Shortcut to avoid dealing with QDomNodeList 207 * all the time. 208 */ 209 QDomNode namedItem(const QString& name) const; 210 211 bool isNull() const; 212 void clear(); 213 214 QDomAttr toAttr() const; 215 QDomCDATASection toCDATASection() const; 216 QDomDocumentFragment toDocumentFragment() const; 217 QDomDocument toDocument() const; 218 QDomDocumentType toDocumentType() const; 219 QDomElement toElement() const; 220 QDomEntityReference toEntityReference() const; 221 QDomText toText() const; 222 QDomEntity toEntity() const; 223 QDomNotation toNotation() const; 224 QDomProcessingInstruction toProcessingInstruction() const; 225 QDomCharacterData toCharacterData() const; 226 QDomComment toComment() const; 227 228 void save(QTextStream&, int, EncodingPolicy=QDomNode::EncodingFromDocument) const; 229 230 QDomElement firstChildElement(const QString &tagName = QString()) const; 231 QDomElement lastChildElement(const QString &tagName = QString()) const; 232 QDomElement previousSiblingElement(const QString &tagName = QString()) const; 233 QDomElement nextSiblingElement(const QString &taName = QString()) const; 234 235 int lineNumber() const; 236 int columnNumber() const; 237 238 protected: 239 QDomNodePrivate* impl; 240 QDomNode(QDomNodePrivate*); 241 242 private: 243 friend class QDomDocument; 244 friend class QDomDocumentType; 245 friend class QDomNodeList; 246 friend class QDomNamedNodeMap; 247 }; 248 249 class Q_XML_EXPORT QDomNodeList 250 { 251 public: 252 QDomNodeList(); 253 QDomNodeList(const QDomNodeList&); 254 QDomNodeList& operator= (const QDomNodeList&); 255 bool operator== (const QDomNodeList&) const; 256 bool operator!= (const QDomNodeList&) const; 257 ~QDomNodeList(); 258 259 // DOM functions 260 QDomNode item(int index) const; at(int index)261 inline QDomNode at(int index) const { return item(index); } // Qt API consistency 262 263 // DOM read only attributes 264 int length() const; count()265 inline int count() const { return length(); } // Qt API consitancy size()266 inline int size() const { return length(); } // Qt API consistency isEmpty()267 inline bool isEmpty() const { return length() == 0; } // Qt API consistency 268 269 private: 270 QDomNodeListPrivate* impl; 271 QDomNodeList(QDomNodeListPrivate*); 272 273 friend class QDomNode; 274 friend class QDomElement; 275 friend class QDomDocument; 276 }; 277 278 class Q_XML_EXPORT QDomDocumentType : public QDomNode 279 { 280 public: 281 QDomDocumentType(); 282 QDomDocumentType(const QDomDocumentType& x); 283 QDomDocumentType& operator= (const QDomDocumentType&); 284 285 // DOM read only attributes 286 QString name() const; 287 QDomNamedNodeMap entities() const; 288 QDomNamedNodeMap notations() const; 289 QString publicId() const; 290 QString systemId() const; 291 QString internalSubset() const; 292 293 // Overridden from QDomNode nodeType()294 inline QDomNode::NodeType nodeType() const { return DocumentTypeNode; } 295 296 private: 297 QDomDocumentType(QDomDocumentTypePrivate*); 298 299 friend class QDomImplementation; 300 friend class QDomDocument; 301 friend class QDomNode; 302 }; 303 304 class Q_XML_EXPORT QDomDocument : public QDomNode 305 { 306 public: 307 QDomDocument(); 308 explicit QDomDocument(const QString& name); 309 explicit QDomDocument(const QDomDocumentType& doctype); 310 QDomDocument(const QDomDocument& x); 311 QDomDocument& operator= (const QDomDocument&); 312 ~QDomDocument(); 313 314 // DOM functions 315 QDomElement createElement(const QString& tagName); 316 QDomDocumentFragment createDocumentFragment(); 317 QDomText createTextNode(const QString& data); 318 QDomComment createComment(const QString& data); 319 QDomCDATASection createCDATASection(const QString& data); 320 QDomProcessingInstruction createProcessingInstruction(const QString& target, const QString& data); 321 QDomAttr createAttribute(const QString& name); 322 QDomEntityReference createEntityReference(const QString& name); 323 QDomNodeList elementsByTagName(const QString& tagname) const; 324 QDomNode importNode(const QDomNode& importedNode, bool deep); 325 QDomElement createElementNS(const QString& nsURI, const QString& qName); 326 QDomAttr createAttributeNS(const QString& nsURI, const QString& qName); 327 QDomNodeList elementsByTagNameNS(const QString& nsURI, const QString& localName); 328 QDomElement elementById(const QString& elementId); 329 330 // DOM read only attributes 331 QDomDocumentType doctype() const; 332 QDomImplementation implementation() const; 333 QDomElement documentElement() const; 334 335 // Overridden from QDomNode nodeType()336 inline QDomNode::NodeType nodeType() const { return DocumentNode; } 337 338 // Qt extensions 339 bool setContent(const QByteArray& text, bool namespaceProcessing, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr ); 340 bool setContent(const QString& text, bool namespaceProcessing, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr ); 341 bool setContent(QIODevice* dev, bool namespaceProcessing, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr ); 342 #if QT_DEPRECATED_SINCE(5, 15) 343 QT_WARNING_PUSH 344 QT_WARNING_DISABLE_DEPRECATED 345 QT_DEPRECATED_X("Use other overloads instead") 346 bool setContent(QXmlInputSource *source, bool namespaceProcessing, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr ); 347 QT_WARNING_POP 348 #endif 349 bool setContent(const QByteArray& text, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr ); 350 bool setContent(const QString& text, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr ); 351 bool setContent(QIODevice* dev, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr ); 352 #if QT_DEPRECATED_SINCE(5, 15) 353 QT_WARNING_PUSH 354 QT_WARNING_DISABLE_DEPRECATED 355 QT_DEPRECATED_X("Use other overloads instead") 356 bool setContent(QXmlInputSource *source, QXmlReader *reader, QString *errorMsg=nullptr, int *errorLine=nullptr, int *errorColumn=nullptr ); 357 QT_WARNING_POP 358 #endif 359 bool setContent(QXmlStreamReader *reader, bool namespaceProcessing, QString *errorMsg = nullptr, 360 int *errorLine = nullptr, int *errorColumn = nullptr); 361 362 // Qt extensions 363 QString toString(int = 1) const; 364 QByteArray toByteArray(int = 1) const; 365 366 private: 367 QDomDocument(QDomDocumentPrivate*); 368 369 friend class QDomNode; 370 }; 371 372 class Q_XML_EXPORT QDomNamedNodeMap 373 { 374 public: 375 QDomNamedNodeMap(); 376 QDomNamedNodeMap(const QDomNamedNodeMap&); 377 QDomNamedNodeMap& operator= (const QDomNamedNodeMap&); 378 bool operator== (const QDomNamedNodeMap&) const; 379 bool operator!= (const QDomNamedNodeMap&) const; 380 ~QDomNamedNodeMap(); 381 382 // DOM functions 383 QDomNode namedItem(const QString& name) const; 384 QDomNode setNamedItem(const QDomNode& newNode); 385 QDomNode removeNamedItem(const QString& name); 386 QDomNode item(int index) const; 387 QDomNode namedItemNS(const QString& nsURI, const QString& localName) const; 388 QDomNode setNamedItemNS(const QDomNode& newNode); 389 QDomNode removeNamedItemNS(const QString& nsURI, const QString& localName); 390 391 // DOM read only attributes 392 int length() const; count()393 int count() const { return length(); } // Qt API consitancy size()394 inline int size() const { return length(); } // Qt API consistency isEmpty()395 inline bool isEmpty() const { return length() == 0; } // Qt API consistency 396 397 // Qt extension 398 bool contains(const QString& name) const; 399 400 private: 401 QDomNamedNodeMapPrivate* impl; 402 QDomNamedNodeMap(QDomNamedNodeMapPrivate*); 403 404 friend class QDomNode; 405 friend class QDomDocumentType; 406 friend class QDomElement; 407 }; 408 409 class Q_XML_EXPORT QDomDocumentFragment : public QDomNode 410 { 411 public: 412 QDomDocumentFragment(); 413 QDomDocumentFragment(const QDomDocumentFragment& x); 414 QDomDocumentFragment& operator= (const QDomDocumentFragment&); 415 416 // Overridden from QDomNode nodeType()417 inline QDomNode::NodeType nodeType() const { return DocumentFragmentNode; } 418 419 private: 420 QDomDocumentFragment(QDomDocumentFragmentPrivate*); 421 422 friend class QDomDocument; 423 friend class QDomNode; 424 }; 425 426 class Q_XML_EXPORT QDomCharacterData : public QDomNode 427 { 428 public: 429 QDomCharacterData(); 430 QDomCharacterData(const QDomCharacterData& x); 431 QDomCharacterData& operator= (const QDomCharacterData&); 432 433 // DOM functions 434 QString substringData(unsigned long offset, unsigned long count); 435 void appendData(const QString& arg); 436 void insertData(unsigned long offset, const QString& arg); 437 void deleteData(unsigned long offset, unsigned long count); 438 void replaceData(unsigned long offset, unsigned long count, const QString& arg); 439 440 // DOM read only attributes 441 int length() const; 442 443 // DOM attributes 444 QString data() const; 445 void setData(const QString&); 446 447 // Overridden from QDomNode 448 QDomNode::NodeType nodeType() const; 449 450 private: 451 QDomCharacterData(QDomCharacterDataPrivate*); 452 453 friend class QDomDocument; 454 friend class QDomText; 455 friend class QDomComment; 456 friend class QDomNode; 457 }; 458 459 class Q_XML_EXPORT QDomAttr : public QDomNode 460 { 461 public: 462 QDomAttr(); 463 QDomAttr(const QDomAttr& x); 464 QDomAttr& operator= (const QDomAttr&); 465 466 // DOM read only attributes 467 QString name() const; 468 bool specified() const; 469 QDomElement ownerElement() const; 470 471 // DOM attributes 472 QString value() const; 473 void setValue(const QString&); 474 475 // Overridden from QDomNode nodeType()476 inline QDomNode::NodeType nodeType() const { return AttributeNode; } 477 478 private: 479 QDomAttr(QDomAttrPrivate*); 480 481 friend class QDomDocument; 482 friend class QDomElement; 483 friend class QDomNode; 484 }; 485 486 class Q_XML_EXPORT QDomElement : public QDomNode 487 { 488 public: 489 QDomElement(); 490 QDomElement(const QDomElement& x); 491 QDomElement& operator= (const QDomElement&); 492 493 // DOM functions 494 QString attribute(const QString& name, const QString& defValue = QString() ) const; 495 void setAttribute(const QString& name, const QString& value); 496 void setAttribute(const QString& name, qlonglong value); 497 void setAttribute(const QString& name, qulonglong value); setAttribute(const QString & name,int value)498 inline void setAttribute(const QString& name, int value) 499 { setAttribute(name, qlonglong(value)); } setAttribute(const QString & name,uint value)500 inline void setAttribute(const QString& name, uint value) 501 { setAttribute(name, qulonglong(value)); } 502 void setAttribute(const QString& name, float value); 503 void setAttribute(const QString& name, double value); 504 void removeAttribute(const QString& name); 505 QDomAttr attributeNode(const QString& name); 506 QDomAttr setAttributeNode(const QDomAttr& newAttr); 507 QDomAttr removeAttributeNode(const QDomAttr& oldAttr); 508 QDomNodeList elementsByTagName(const QString& tagname) const; 509 bool hasAttribute(const QString& name) const; 510 511 QString attributeNS(const QString nsURI, const QString& localName, const QString& defValue = QString()) const; 512 void setAttributeNS(const QString nsURI, const QString& qName, const QString& value); setAttributeNS(const QString nsURI,const QString & qName,int value)513 inline void setAttributeNS(const QString nsURI, const QString& qName, int value) 514 { setAttributeNS(nsURI, qName, qlonglong(value)); } setAttributeNS(const QString nsURI,const QString & qName,uint value)515 inline void setAttributeNS(const QString nsURI, const QString& qName, uint value) 516 { setAttributeNS(nsURI, qName, qulonglong(value)); } 517 void setAttributeNS(const QString nsURI, const QString& qName, qlonglong value); 518 void setAttributeNS(const QString nsURI, const QString& qName, qulonglong value); 519 void setAttributeNS(const QString nsURI, const QString& qName, double value); 520 void removeAttributeNS(const QString& nsURI, const QString& localName); 521 QDomAttr attributeNodeNS(const QString& nsURI, const QString& localName); 522 QDomAttr setAttributeNodeNS(const QDomAttr& newAttr); 523 QDomNodeList elementsByTagNameNS(const QString& nsURI, const QString& localName) const; 524 bool hasAttributeNS(const QString& nsURI, const QString& localName) const; 525 526 // DOM read only attributes 527 QString tagName() const; 528 void setTagName(const QString& name); // Qt extension 529 530 // Overridden from QDomNode 531 QDomNamedNodeMap attributes() const; nodeType()532 inline QDomNode::NodeType nodeType() const { return ElementNode; } 533 534 QString text() const; 535 536 private: 537 QDomElement(QDomElementPrivate*); 538 539 friend class QDomDocument; 540 friend class QDomNode; 541 friend class QDomAttr; 542 }; 543 544 class Q_XML_EXPORT QDomText : public QDomCharacterData 545 { 546 public: 547 QDomText(); 548 QDomText(const QDomText& x); 549 QDomText& operator= (const QDomText&); 550 551 // DOM functions 552 QDomText splitText(int offset); 553 554 // Overridden from QDomCharacterData nodeType()555 inline QDomNode::NodeType nodeType() const { return TextNode; } 556 557 private: 558 QDomText(QDomTextPrivate*); 559 560 friend class QDomCDATASection; 561 friend class QDomDocument; 562 friend class QDomNode; 563 }; 564 565 class Q_XML_EXPORT QDomComment : public QDomCharacterData 566 { 567 public: 568 QDomComment(); 569 QDomComment(const QDomComment& x); 570 QDomComment& operator= (const QDomComment&); 571 572 // Overridden from QDomCharacterData nodeType()573 inline QDomNode::NodeType nodeType() const { return CommentNode; } 574 575 private: 576 QDomComment(QDomCommentPrivate*); 577 578 friend class QDomDocument; 579 friend class QDomNode; 580 }; 581 582 class Q_XML_EXPORT QDomCDATASection : public QDomText 583 { 584 public: 585 QDomCDATASection(); 586 QDomCDATASection(const QDomCDATASection& x); 587 QDomCDATASection& operator= (const QDomCDATASection&); 588 589 // Overridden from QDomText nodeType()590 inline QDomNode::NodeType nodeType() const { return CDATASectionNode; } 591 592 private: 593 QDomCDATASection(QDomCDATASectionPrivate*); 594 595 friend class QDomDocument; 596 friend class QDomNode; 597 }; 598 599 class Q_XML_EXPORT QDomNotation : public QDomNode 600 { 601 public: 602 QDomNotation(); 603 QDomNotation(const QDomNotation& x); 604 QDomNotation& operator= (const QDomNotation&); 605 606 // DOM read only attributes 607 QString publicId() const; 608 QString systemId() const; 609 610 // Overridden from QDomNode nodeType()611 inline QDomNode::NodeType nodeType() const { return NotationNode; } 612 613 private: 614 QDomNotation(QDomNotationPrivate*); 615 616 friend class QDomDocument; 617 friend class QDomNode; 618 }; 619 620 class Q_XML_EXPORT QDomEntity : public QDomNode 621 { 622 public: 623 QDomEntity(); 624 QDomEntity(const QDomEntity& x); 625 QDomEntity& operator= (const QDomEntity&); 626 627 // DOM read only attributes 628 QString publicId() const; 629 QString systemId() const; 630 QString notationName() const; 631 632 // Overridden from QDomNode nodeType()633 inline QDomNode::NodeType nodeType() const { return EntityNode; } 634 635 private: 636 QDomEntity(QDomEntityPrivate*); 637 638 friend class QDomNode; 639 }; 640 641 class Q_XML_EXPORT QDomEntityReference : public QDomNode 642 { 643 public: 644 QDomEntityReference(); 645 QDomEntityReference(const QDomEntityReference& x); 646 QDomEntityReference& operator= (const QDomEntityReference&); 647 648 // Overridden from QDomNode nodeType()649 inline QDomNode::NodeType nodeType() const { return EntityReferenceNode; } 650 651 private: 652 QDomEntityReference(QDomEntityReferencePrivate*); 653 654 friend class QDomDocument; 655 friend class QDomNode; 656 }; 657 658 class Q_XML_EXPORT QDomProcessingInstruction : public QDomNode 659 { 660 public: 661 QDomProcessingInstruction(); 662 QDomProcessingInstruction(const QDomProcessingInstruction& x); 663 QDomProcessingInstruction& operator= (const QDomProcessingInstruction&); 664 665 // DOM read only attributes 666 QString target() const; 667 668 // DOM attributes 669 QString data() const; 670 void setData(const QString& d); 671 672 // Overridden from QDomNode nodeType()673 inline QDomNode::NodeType nodeType() const { return ProcessingInstructionNode; } 674 675 private: 676 QDomProcessingInstruction(QDomProcessingInstructionPrivate*); 677 678 friend class QDomDocument; 679 friend class QDomNode; 680 }; 681 682 683 Q_XML_EXPORT QTextStream& operator<<(QTextStream&, const QDomNode&); 684 685 #endif // QT_NO_DOM 686 687 QT_END_NAMESPACE 688 689 #endif // QDOM_H 690