예제 #1
0
 public string BuildHaml(string name, string description, string contacts, int id)
 {
     strPageHotelXaml str1 = new strPageHotelXaml();
     str1.NameHotel = name;
     str1.DiscriptionHotel = description;
     str1.ContactsHotel = contacts;
     str1.id_Hotel = id;
     return BuildHaml(str1);
 }
예제 #2
0
        protected string BuildHaml(strPageHotelXaml str)
        {
            string text;
            XDocument doc;
            HTMLparsing html = new HTMLparsing();
            /*Создаем имя документа как ID123*/
            string st = "ID" + str.id_Hotel.ToString();
            XDocument x = new XDocument(new XDocumentType(st, null, null, null),
                                        new XElement(st));
            /*3 базовых области вывода XElement*/
            x.Element(st).Add(new XElement("Название"));
            x.Element(st).Add(new XElement("Описание"));
            x.Element(st).Add(new XElement("Контакты"));
            //Добавляем Название отеля
            XElement tt1 = x.Element(st).Element("Название");
            tt1.Add(new XComment(str.NameHotel));
            //description
            XElement tt2 = x.Element(st).Element("Описание");
            XElement tt3 = x.Element(st).Element("Контакты");
            //Добавляем корневой элемент, дабы все не ругалось об его
            //отсутствии (в начало + строка + конец)
            st = "<KOREN>" + str.DiscriptionHotel + "</KOREN>";
            //Удаляем управляющие символы
            st = st.Replace("<люкс>", "люкс");
            st = st.Replace("<полулюкс>", "полулюкс");
            st = st.Replace("<li>", "-");
            st = st.Replace("</li>", "-");
            st = st.Replace("&", "-");

            st = st.Replace("<a", "!!!!!");
            st = st.Replace("</a>", "!!!!!");
            st = st.Replace("<6. b>", " ");
            st = st.Replace("<br><br>", " "); //</b><br>
            st = st.Replace("</b><br>", "/b");
            try
            {//Создаем XDocument для разбора строки
                doc = XDocument.Parse(st, LoadOptions.SetLineInfo);
            }
            catch
            {
                return "ОШИБКА ОБРАБОТКИ";
            }

            //Разбираем discription
            foreach (XElement el in doc.Root.Elements())
            {   //tt2 - Описание
                st = el.Value;
                text = html.ParsingHTML(str.DiscriptionHotel, st);
                tt2.Add(new XElement("Рубрика", new XAttribute("атрибут", st),
                                            new XComment( text)));
            }
            //Разбираем contacts
            st = "<KOREN>" + str.ContactsHotel + "</KOREN>";
            //не нравится http пока подменем
            //st = st.Replace("<a", "<a>");
            st = st.Replace("<a", "!!!!!");
            st = st.Replace("</a>", "!!!!!");
            try
            {
                doc = XDocument.Parse(st, LoadOptions.SetLineInfo);
            }
            catch
            {
                return "ОШИБКА ОБРАБОТКИ";
            }
            //st = st.Replace("<a>", "<a");
            foreach (XElement el in doc.Root.Elements())
            {
                st = el.Value;
                text = html.ParsingHTML(str.ContactsHotel, st);
                /*новое*/
                st = st.Replace(" ", "_");
                st = st.Replace(":", "-");
                st = st.Replace(",", "-");
                st = st.Replace("(", "-");
                st = st.Replace(")", "-");
                st = st.Replace("/", "-");
                if ((st == null) || (st == "")) return "ОШИБКА ОБРАБОТКИ";
                tt3.Add(new XElement(st, text));
            }
            return x.ToString();
        }