private static Epub3NavLi ReadEpub3NavLi(XElement epub3NavLiNode)
        {
            Epub3NavLi epub3NavLi = new Epub3NavLi();

            foreach (XElement navLiChildNode in epub3NavLiNode.Elements())
            {
                switch (navLiChildNode.GetLowerCaseLocalName())
                {
                case "a":
                    Epub3NavAnchor epub3NavAnchor = ReadEpub3NavAnchor(navLiChildNode);
                    epub3NavLi.Anchor = epub3NavAnchor;
                    break;

                case "span":
                    Epub3NavSpan epub3NavSpan = ReadEpub3NavSpan(navLiChildNode);
                    epub3NavLi.Span = epub3NavSpan;
                    break;

                case "ol":
                    Epub3NavOl epub3NavOl = ReadEpub3NavOl(navLiChildNode);
                    epub3NavLi.ChildOl = epub3NavOl;
                    break;
                }
            }
            return(epub3NavLi);
        }
        private static Epub3NavOl ReadEpub3NavOl(XElement epub3NavOlNode)
        {
            Epub3NavOl epub3NavOl = new Epub3NavOl();

            foreach (XAttribute navOlNodeAttribute in epub3NavOlNode.Attributes())
            {
                string attributeValue = navOlNodeAttribute.Value;
                switch (navOlNodeAttribute.GetLowerCaseLocalName())
                {
                case "hidden":
                    epub3NavOl.IsHidden = true;
                    break;
                }
            }
            epub3NavOl.Lis = new List <Epub3NavLi>();
            foreach (XElement navOlChildNode in epub3NavOlNode.Elements())
            {
                switch (navOlChildNode.GetLowerCaseLocalName())
                {
                case "li":
                    Epub3NavLi epub3NavLi = ReadEpub3NavLi(navOlChildNode);
                    epub3NavOl.Lis.Add(epub3NavLi);
                    break;
                }
            }
            return(epub3NavOl);
        }