/// <summary> /// /// </summary> /// <param name="xml_file"></param> public override void LoadRectObjects(string xml_file) { figureFilename = System.IO.Path.GetFileNameWithoutExtension(xml_file); Load(xml_file); rectObjects = new List <RectObject>(); for (int i = 0; i < panels.Count; i++) { PanelSegInfo panel = panels[i]; if (panel.panelRect.IsEmpty) { continue; } RectObject rect_panel = new RectObject("panel " + panel.panelLabel, panel.panelRect); rectObjects.Add(rect_panel); if (panel.labelRect.IsEmpty) { continue; } RectObject rect_label = new RectObject("label " + panel.panelLabel, panel.labelRect); rectObjects.Add(rect_label); } }
public void Load(string xml_file) { HtmlDocument doc = new HtmlDocument(); doc.Load(xml_file); HtmlNodeCollection panelseginfo_nodes = doc.DocumentNode.SelectNodes("//gov.nih.nlm.iti.figure.panelseginfo"); foreach (HtmlAgilityPack.HtmlNode panelseginfo_node in panelseginfo_nodes) { PanelSegInfo panel = new PanelSegInfo(); HtmlNode panelrect_node = panelseginfo_node.SelectSingleNode("./panelrect"); HtmlNode labelrect_node = panelseginfo_node.SelectSingleNode("./labelrect"); HtmlNode panellabel_node = panelseginfo_node.SelectSingleNode("./panellabel"); { // HtmlNode x_node = panelrect_node.SelectSingleNode("./x"); HtmlNode y_node = panelrect_node.SelectSingleNode("./y"); HtmlNode width_node = panelrect_node.SelectSingleNode("./width"); HtmlNode height_node = panelrect_node.SelectSingleNode("./height"); string x = x_node.InnerText.Trim(); string y = y_node.InnerText.Trim(); string width = width_node.InnerText.Trim(); string height = height_node.InnerText.Trim(); panel.panelRect = new Rectangle(int.Parse(x), int.Parse(y), int.Parse(width), int.Parse(height)); } if (labelrect_node != null) { // HtmlNode x_node = labelrect_node.SelectSingleNode("./x"); HtmlNode y_node = labelrect_node.SelectSingleNode("./y"); HtmlNode width_node = labelrect_node.SelectSingleNode("./width"); HtmlNode height_node = labelrect_node.SelectSingleNode("./height"); string x = x_node.InnerText.Trim(); string y = y_node.InnerText.Trim(); string width = width_node.InnerText.Trim(); string height = height_node.InnerText.Trim(); panel.labelRect = new Rectangle(int.Parse(x), int.Parse(y), int.Parse(width), int.Parse(height)); } if (panellabel_node != null) { panel.panelLabel = panellabel_node.InnerText.Trim(); } panels.Add(panel); } }