/// <summary> /// 加载对象数据 /// </summary> /// <param name="myReader"></param> /// <returns></returns> internal override bool InnerRead(HTMLTextReader myReader) { myItems.Clear(); strText = myReader.ReadToEndTag(this.TagName); if (strText != null) { strText = strText.Replace("<!--", ""); strText = strText.Replace("-->", ""); int index = 0; int index2 = strText.IndexOf("{"); while (index2 >= 0) { int index3 = strText.IndexOf("}", index2); if (index3 > index2) { string strName = strText.Substring(index, index2 - index); string strValue = strText.Substring(index2 + 1, index3 - index2 - 1); HTMLNameStyleItem NewItem = new HTMLNameStyleItem(); NewItem.Name = strName.Trim(); NewItem.CSSString = strValue; myItems.Add(NewItem); } index = index3 + 1; index2 = strText.IndexOf("{", index); } } //myReader.MoveAfter('>'); return(true); }
/// <summary> /// 从HTML读取器中加载对象数据 /// </summary> /// <param name="myReader"></param> /// <returns></returns> internal override bool InnerRead(HTMLTextReader myReader) { strLoadErrorMsg = null; strSourceXML = myReader.ReadToEndTag(this.TagName); try { myXMLDocument.RemoveAll(); System.Xml.XmlNamespaceManager nsm = new System.Xml.XmlNamespaceManager(myXMLDocument.NameTable); foreach (HTMLAttribute attr in myOwnerDocument.Attributes) { string vName = attr.Name; if (vName.ToLower().StartsWith(StringConstAttributeName.XMLNS)) { int index = vName.IndexOf(":"); if (index > 0) { string NsName = vName.Substring(index + 1); nsm.AddNamespace(NsName, attr.Value); } } } System.Xml.XmlParserContext pc = new System.Xml.XmlParserContext(myXMLDocument.NameTable, nsm, null, System.Xml.XmlSpace.None); System.Xml.XmlTextReader myXMLReader = new System.Xml.XmlTextReader(strSourceXML, System.Xml.XmlNodeType.Element, pc); myXMLDocument.Load(myXMLReader); myXMLReader.Close(); } catch (Exception ext) { myXMLDocument.RemoveAll(); strLoadErrorMsg = "加载XML数据岛信息错误 - " + ext.Message; } return(true); }
/// <summary> /// 读取HTML代码,忽略HTML注释 /// </summary> /// <param name="myReader">HTML文本读取器</param> /// <returns>操作是否成功</returns> internal override bool InnerRead(HTMLTextReader myReader) { strText = myReader.ReadToEndTag(this.TagName); if (strText != null) { int index = strText.IndexOf("<!--"); if (index >= 0) { strText = strText.Substring(index + 4); } index = strText.LastIndexOf("-->"); if (index >= 0) { strText = strText.Substring(0, index); } } //myReader.MoveAfter('>'); return(true); }
/// <summary> /// 从HTML文本读取器读取数据并加载子元素 /// </summary> /// <param name="myReader">HTML文本读取器</param> /// <returns>操作是否成功</returns> internal override bool InnerRead(HTMLTextReader myReader) { string strTagName; while (!myReader.EOF) { string strText = myReader.ReadString(); if (strText != null && this.CheckChildTagName(StringConstTagName.TextNode)) { HTMLTextNodeElement txt = new HTMLTextNodeElement(); txt.Text = strText; AppendChild(txt); } if (myReader.EOF) { break; } if (myReader.NextChar == '!') { if (myReader.StartWidth("<!--")) { myReader.MoveStep(4); strText = myReader.ReadUntil("-->"); if (strText != null) { if (this.CheckChildTagName(StringConstTagName.Comment)) { HTMLCommentElement com = new HTMLCommentElement(); com.Text = strText; AppendChild(com); } } myReader.MoveStep(3); continue; } else { myReader.MoveAfter('>'); myReader.SkipWhiteSpace(); continue; } } // else if( myReader.NextChar == '/') // { // if( myReader.StartWidth("</" + this.TagName )) // { // myReader.MoveAfter('>'); // break; // } // else // { // myReader.MoveAfter('>'); // continue; // } // } else if (myReader.NextChar == '/') { myReader.MoveStep(2); string vEndTag = myReader.PeekWord(); myReader.MoveStep(-2); // if( ( vEndTag != null ) && vEndTag.ToLower() == this.TagName ) // { // myReader.MoveAfter('>'); // break; // } if ((vEndTag != null) && (MeetEndTag(myReader, vEndTag.ToLower()))) { break; } else { myReader.MoveAfter('>'); continue; } } else if (myReader.NextChar == '?') { myReader.MoveAfter('>'); continue; } myReader.MoveNext(); strTagName = myReader.ReadWord(); if (strTagName != null) { strTagName = strTagName.ToLower(); if (!BeforeLoadTag(strTagName)) { myReader.MovePreTo('<'); break; } if (this.CheckChildTagName(strTagName)) { HTMLElement NewElement = myOwnerDocument.InnerCreateElement(strTagName, this); if (NewElement != null) { AppendChild(NewElement); NewElement.Read(myReader); } else { myReader.ReadToEndTag(strTagName); } } } } //while return(true); }
internal override bool InnerRead(HTMLTextReader myReader) { strText = myReader.ReadToEndTag(this.TagName); return(true); }