Esempio n. 1
0
            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);
                }
            }
Esempio n. 2
0
            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);
            }
Esempio n. 3
0
            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;
            }