public BookInfo Build(Stream content) { //reset mContentStream = content; mBookInfo = new BookInfo(); using (var reader = new StreamReader(mContentStream)) { var bookInfoStr = reader.ReadToEnd(); var match = BookCardInfoRegex.Match(bookInfoStr); if (match.Success) { var bookCardInfoStr = match.Groups[0].Value; mBookInfo.CardInfo = BookCardInfo.Build(bookCardInfoStr); } var deptStr = bookInfoStr.Substring(bookInfoStr.IndexOf("藏书情况")); match = DeptInfoRegex.Match(bookInfoStr); if (match.Success) { var deptInfoStr = match.Groups[0].Value; mBookInfo.DeptInfos = DeptInfo.Build(deptInfoStr); } return(mBookInfo); } }
public BookCardInfo Build(string content) { //reset mState = BookCardInfoBuilderState.TitleAuthor; mBookCardInfo = new BookCardInfo(); mContentAndIsbnTexts.Clear(); content = HREF_REGEX.Replace(content, ""); content = HtmlEntityCorrect.Encode(content); using (mReader = XmlReader.Create(new MemoryStream(Encoding.UTF8.GetBytes(content)))) { while (mReader.Read()) { switch (mReader.NodeType) { case XmlNodeType.Text: this.onText(HtmlEntityCorrect.Decode(mReader.Value)); break; case XmlNodeType.Element: this.onElement(HtmlEntityCorrect.Decode(mReader.Name)); break; } } } return(mBookCardInfo); }
public BookCardInfo Build(string content) { //reset mState = BookCardInfoBuilderState.TitleAuthor; mBookCardInfo = new BookCardInfo(); mContentAndIsbnTexts.Clear(); content = HREF_REGEX.Replace(content, ""); content = HtmlEntityCorrect.Encode(content); using (mReader = XmlReader.Create(new MemoryStream(Encoding.UTF8.GetBytes(content)))) { while (mReader.Read()) { switch (mReader.NodeType) { case XmlNodeType.Text: this.onText(HtmlEntityCorrect.Decode(mReader.Value)); break; case XmlNodeType.Element: this.onElement(HtmlEntityCorrect.Decode(mReader.Name)); break; } } } return mBookCardInfo; }