コード例 #1
0
ファイル: jxParser.cs プロジェクト: weimingtom/job_mobile
            /// Handles opening tags.
            protected virtual void Callback_StartElementHandler(string tagName, ref jxAttributeList attrList)
            {
                // placeholder for new element.
                jxElement newElement;                 // no assignment is bad form but necessary

                if (!m_isRootFlag)
                {                 // need to setup root element...
                    newElement   = new jxElement(tagName.Trim(), null);
                    m_Root       = newElement;
                    m_isRootFlag = true;
                }
                else
                {                 // standard new element creations...
                    newElement = new jxElement(tagName.Trim(), m_currentElement);
                }
                //newElement.DebugPrint();

                // Add attributes we've encounted thus far
                if (attrList.Count != 0)
                {
                    newElement.m_AttrList = attrList;
                }

                // clear saved attribute list
                attrList = new jxAttributeList();

                // advance current element
                m_currentElement = newElement;
            }
コード例 #2
0
            public void InsertChild(jxE eInsert, int iOrder = -1)  // -1이면 맨마지막에 추가, 0이면 첫번째노드 다음에 추가.
            {
                eInsert.m_Parent = this;

                jxE eInsertNextPos = GetChild(iOrder);

                if (eInsertNextPos == null)
                {
                    m_Child          = eInsert;
                    eInsert.m_Prev   = eInsert.m_Next = null;
                    eInsert.m_iOrder = 0;
                    m_iChildCount    = 1;
                }
                else
                {
                    ++m_iChildCount;

                    eInsert.m_Prev = eInsertNextPos;
                    eInsert.m_Next = eInsertNextPos.m_Next;

                    if (eInsertNextPos.m_Next != null)
                    {
                        eInsertNextPos.m_Next.m_Prev = eInsert;
                    }
                    eInsertNextPos.m_Next = eInsert;
                }

                reorderChild();
            }
コード例 #3
0
            //~jxElement() { clear(); }
            private void clear()
            {
                if (IsEType(EDataType.e_null))
                {
                    bool isOk = m_Parent == null && m_Prev == null && m_Next == null && m_Child == null && m_iChildCount == 0 && m_AttrList == null;
                    if (!isOk)
                    {
                        throw new System.Exception("ERROR : m_Parent==null && m_Prev==null && m_Next==null && m_Child==null && m_iChildCount==0 && m_AttrList==null");
                    }
                    return;
                }
                m_iOrder      = -1;
                m_iChildCount = 0;
                m_Parent      = null;
                jxE ePrev = m_Prev;

                if (m_Prev != null)
                {
                    m_Prev.m_Next = m_Next;
                    m_Prev        = null;
                }

                if (m_Next != null)
                {
                    m_Next.m_Prev = ePrev;
                    m_Next        = null;
                }
                for (jxE e = m_Child; e != null; e = m_Child.m_Next)
                {
                    e = null;
                }
                m_AttrList      = null;
                m_NamedUserData = null;
                m_UserData      = null;
            }
コード例 #4
0
 public jxElement(string name, jxElement parent) : base(EDataType.e_unkown)
 {
     SetTagName(name);
     m_iOrder = 0;
     m_Parent = parent;
     if (parent != null)
     {
         parent.InsertChild(this);
     }
 }
コード例 #5
0
ファイル: jxParser.cs プロジェクト: weimingtom/job_mobile
 /// Handles end tags.
 protected virtual void Callback_EndElementHandler(string tagName)
 {
     if (!m_isRootFlag)
     {
         return;
     }
     if (m_Root == m_currentElement)
     {
         return;
     }
     m_currentElement = (jxElement)m_currentElement.GetParent();
 }