xj qian
2024-12-05 bd09edf1b441dcc6ab098f277bea86a72c009879
jrj/xframe/kobject/kxml.hpp
@@ -13,7 +13,7 @@
   class KXMLDOMTextNode;
   class KXMLDOMProcessingInstruction;
   class KXMLDOMNodeList;
   class KXMLParseError;
   class KXMLDOMParseError;
   enum  KDOMNodeType
   {
@@ -133,13 +133,43 @@
      KXMLDOMNode(const KXMLDOMNode& rhs);
      const KXMLDOMNode& operator =(const KXMLDOMNode& rhs);
   public:
      unsigned long AddRef();
      unsigned long Release();
   public:
      LPARAM ptr()
      {
         this->AddRef();
         return (LPARAM)this->getImpl();
      }
      KXMLDOMNode(LPARAM p) :KXMLDOMNode((void*)p) {
         AddRef();
      }
   public:
      operator bool() { return impl ? true : false; }
      bool operator !=(KXMLDOMNode& rhs) { return rhs.getImpl() != getImpl(); }
      bool operator ==(KXMLDOMNode& rhs) { return rhs.getImpl() == getImpl(); }
   public:
      void* getImpl();
   };
   class KXMLDOMElement : public KXMLDOMNode
   {
   public:
      KXMLDOMElement(KXMLDOMNode v);
      KXMLDOMElement(void* impl) :KXMLDOMNode(impl) {}
      KXMLDOMElement() :KXMLDOMNode() {}
   public:
      KXMLDOMElement(LPARAM p) :KXMLDOMNode(p) {}
   };
   class KXMLDOMDocument : public KXMLDOMNode
   {
   public:
      bool operator !()
      {
         return !impl || !documentElement();
      }
   public:
      const wchar_t* text();
      const wchar_t* url();
@@ -182,7 +212,7 @@
      wchar_t* transformNode(KXMLDOMNode);
      KXMLDOMNode transformNodeToObject(KXMLDOMNode);
      KXMLParseError validate();
      KXMLDOMParseError validate();
      //bool validateNode();
   public:
      KXMLDOMDocument(void* impl);
@@ -191,15 +221,13 @@
   public:
      const KXMLDOMDocument& operator =(const KXMLDOMDocument& rhs);
      KXMLDOMDocument(const KXMLDOMDocument& rhs);
   public:
      void Reset()
      {
         if (documentElement())removeChild(documentElement());
      }
   };
   class KXMLDOMElement : public KXMLDOMNode
   {
   public:
      KXMLDOMElement( KXMLDOMNode v);
      KXMLDOMElement(void* impl) :KXMLDOMNode(impl) {}
      KXMLDOMElement() :KXMLDOMNode() {}
   };
   class KXMLDOMAttribute : public KXMLDOMNode
   {
   public:
@@ -256,11 +284,19 @@
using KXMLDOMElement=Hxsoft::XFrame::KXMLDOMElement;
using KXMLDOMNodeList = Hxsoft::XFrame::KXMLDOMNodeList;
class KXMLParseError : public KXMLDOMNode
class KXMLDOMParseError : public KXMLDOMNode
{
public:
   KXMLParseError(KXMLDOMNode& v);
   KXMLParseError(void* impl) :KXMLDOMNode(impl) {}
   KXMLDOMParseError(KXMLDOMNode& v);
   KXMLDOMParseError(void* impl) :KXMLDOMNode(impl) {}
public:
   int errorCode();
   int filepos();
   int line();
   int linepos();
   BSTR reason();
   BSTR srcText();
   BSTR url();
};
class KXMLDOMElementPtr
@@ -269,7 +305,7 @@
   KXMLDOMElement* m_pElement;
public:
   KXMLDOMElementPtr(LPARAM ele) :m_pElement((KXMLDOMElement*)ele) {}
   KXMLDOMElementPtr(KXMLDOMElement* pEle) :m_pElement((KXMLDOMElement*)pEle) {}
   KXMLDOMElementPtr(KXMLDOMElement* pEle) :m_pElement(pEle) {}
   KXMLDOMElementPtr(KXMLDOMElement ele) :m_pElement(new KXMLDOMElement(ele)) {}
public:
   KXMLDOMElement* value() { return m_pElement; }