///////////////////////////////////////////////////////////////////////////////////////////////////// /// private functions /// private void ReadLinkDatabaseXml(string filePath) { XmlDocument xml = new XmlDocument(); xml.Load(filePath); XmlNode root = xml.DocumentElement; foreach (XmlNode node in root.ChildNodes) { int countChildern = node.ChildNodes.Count; TransElem te = new TransElem(); te.enUri = node["enUri"].InnerText; te.deUri = node["deUri"].InnerText; foreach (XmlNode textPairNode in node.ChildNodes) { // skip the two uri nodes if (textPairNode.Name != "Trans") { continue; } // every textPairNode is expected to have exactly // two children en and de TransPair tp = new TransPair(); tp.en = NormalizeText(textPairNode["en"].InnerText); tp.de = textPairNode["de"].InnerText; te.textPairs.Add(tp); } _topicDict.Add(ToWikiTopic(te.enUri), te); } }
//private bool tryGetValue(int _key, out BasicFnct _fnct) //{ // bool result = false; // _fnct = null; // for (int i = 0; i < m_transitions.Count; ++i) // { // TransPair p = m_transitions[i]; // if ((getTo(p.m_key) & getTo(_key)) > 0 && (getFrom(p.m_key) & getFrom(_key)) > 0) // { // _fnct = p.m_fnct; // result = true; // break; // } // } // return result; //} private bool tryGetValue(int _key, out BasicFnct _fnct, out int _index) { bool result = false; _fnct = null; _index = -1; int bestMatch = int.MaxValue; //Debug.Log("searching for: from " + getFrom(_key) + " to " + getTo(_key)); for (int i = 0; i < m_transitions.Count; ++i) { TransPair p = m_transitions[i]; if ((getTo(p.m_key) & getTo(_key)) > 0 && (getFrom(p.m_key) & getFrom(_key)) > 0) { if (p.m_key <= bestMatch) { _index = i; bestMatch = p.m_key; _fnct = p.m_fnct; result = true; } } } return(result); }