static Objects.XPathItem LoadXPathItem(XDocument doc, string tagName) { var nd = doc.Root.Element(tagName); var item = new Objects.XPathItem(); item.XPath = nd.Value; if (nd.Attribute("attribute") != null) { item.AttributeName = nd.Attribute("attribute").Value; } return(item); }
string GetNodeInnerTextOrAttributeValue(HtmlNode parentNode, Objects.XPathItem item) { var nd = parentNode.SelectSingleNode(item.XPath); if (!string.IsNullOrEmpty(item.AttributeName)) { if (!nd.Attributes.Any(x => x.Name.Equals(item.AttributeName, StringComparison.OrdinalIgnoreCase))) { return(null); } return(nd.Attributes[item.AttributeName].Value); } else { return(nd.InnerText); } }