public static QuestionGenerator CreateGeneratorFromXml(XmlReader reader)
    {
        bool used = reader.GetAttribute("Used").Equals("y");
        if(!used) return null;
        QuestionGenerator generator = new QuestionGenerator();
        generator.m_tags = reader.GetAttribute("Tags").Split(';');
        generator.m_type = (GeneratorType)System.Enum.Parse(typeof(GeneratorType), reader.GetAttribute("Type"));
        generator.m_weight = System.Convert.ToSingle(reader.GetAttribute("Weight"));
        generator.m_questionText = reader.GetAttribute("QuestionText");
        generator.m_adjacentWithin = System.Convert.ToInt32(reader.GetAttribute("AdjacentWithin"));
        generator.m_infoPrefix = reader.GetAttribute("InfoPrefix");
        generator.m_infoSuffix = reader.GetAttribute("InfoSuffix");
        bool preventDuplicates = generator.m_type == GeneratorType.SortedMultiset;

        reader.ReadToDescendant("Answer");
        do{
            generator.AddAnswer(reader.GetAttribute("Text"), reader.GetAttribute("Value"), preventDuplicates);
        }while(reader.ReadToNextSibling("Answer"));
        return generator;
    }
示例#2
0
        private PlistObjectBase LoadFromNode(XmlReader reader)
        {
            Debug.Assert(reader.NodeType == XmlNodeType.Element);
            bool isEmpty = reader.IsEmptyElement;

            switch (reader.LocalName)
            {
            case "dict":
                var dict = new PlistDictionary(true);
                if (!isEmpty)
                {
                    if (reader.ReadToDescendant("key"))
                    {
                        dict = LoadDictionaryContents(reader, dict);
                    }
                    reader.ReadEndElement();
                }
                return(dict);

            case "array":
                if (isEmpty)
                {
                    return(new PlistArray());
                }

                //advance to first node
                reader.ReadStartElement();
                while (reader.Read() && reader.NodeType != XmlNodeType.Element)
                {
                    ;
                }

                // HACK: plist data in iPods is not even valid in some cases! Way to go Apple!
                // This hack checks to see if they really meant for this array to be a dict.
                if (reader.LocalName == "key")
                {
                    var ret = LoadDictionaryContents(reader, new PlistDictionary(true));
                    reader.ReadEndElement();
                    return(ret);
                }

                var arr = new PlistArray();
                do
                {
                    if (reader.NodeType == XmlNodeType.Element)
                    {
                        var val = LoadFromNode(reader);
                        if (val != null)
                        {
                            arr.Add(val);
                        }
                    }
                } while (reader.Read() && reader.NodeType != XmlNodeType.EndElement);
                reader.ReadEndElement();
                return(arr);

            case "string":
                return(new PlistString(reader.ReadElementContentAsString()));

            case "integer":
                return(new PlistInteger(reader.ReadElementContentAsInt()));

            case "real":
                return(new PlistReal(reader.ReadElementContentAsFloat()));

            case "false":
                reader.ReadStartElement();
                if (!isEmpty)
                {
                    reader.ReadEndElement();
                }
                return(new PlistBoolean(false));

            case "true":
                reader.ReadStartElement();
                if (!isEmpty)
                {
                    reader.ReadEndElement();
                }
                return(new PlistBoolean(true));

            case "data":
                return(new PlistData(reader.ReadElementContentAsString()));

            case "date":
#if NETFX_CORE
                return(new PlistDate(DateTime.Parse(reader.ReadElementContentAsString())));
#else
                return(new PlistDate(reader.ReadElementContentAsDateTime()));
#endif
            default:
                throw new XmlException(String.Format("Plist Node `{0}' is not supported", reader.LocalName));
            }
        }
示例#3
0
        /// <summary>
        /// 读取选项配置文件中的XML内容。
        /// </summary>
        /// <param name="reader">在选项配置文件中进行读取操作的<seealso cref="System.Xml.XmlReader"/>读取器。</param>
        protected internal virtual void DeserializeElement(XmlReader reader)
        {
            if (reader.ReadState == ReadState.Initial)
            {
                if (!reader.Read())
                {
                    throw new OptionConfigurationException();
                }
            }

            OptionConfigurationProperty property;

            //反序列化当前元素的Attributes到当前元素的属性集
            this.DeserializeAttributes(reader, this);

            //如果当前XML元素是空元素(即其没有子节点的元素),则返回
            if (reader.IsEmptyElement)
            {
                return;
            }

            //定义当前读取器的初始深度
            int depth = reader.Depth;

            //定义当前待解析子元素的当前配置项元素
            OptionConfigurationElement element = this;

            while (reader.Read() && reader.Depth > depth)
            {
                if (reader.NodeType != XmlNodeType.Element)
                {
                    continue;
                }

                if (reader.Depth == depth + 1)
                {
                    element = this;
                }

                //如果当前配置项元素是配置集合,则约定当前读取器所处的位置应当处于其下的集合元素的XML节点处
                if (typeof(OptionConfigurationElementCollection).IsAssignableFrom(element.GetType()))
                {
                    //使用当前配置集合来解析当前读取器所处的XML节点内容
                    element.DeserializeElement(reader.ReadSubtree());
                    //忽略后续操作,直接进行后续XML内容处理
                    continue;
                }

                //根据当前XML元素名获取对应的配置属性定义项,如果获取失败则获取当前配置项中的默认集合属性定义项
                if (!element.Properties.TryGetValue(reader.Name, out property))
                {
                    property = OptionConfigurationUtility.GetDefaultCollectionProperty(element.Properties);
                }

                //如果对应的配置属性定义项均获取失败则抛出异常
                if (property == null)
                {
                    throw new OptionConfigurationException(string.Format("The '{0}' option configuration element is unrecognized.", reader.Name));
                }

                //获取或创建当前配置属性定义项对应的目标元素对象
                element = element.EnsureElementPropertyValue(property);
                //判断获取的配置项元素是否为配置项集合
                var collection = element as OptionConfigurationElementCollection;

                if (collection != null)
                {
                    //如果当前配置项集合不是默认集合(即集合有对应的XML节点),则将当前读取器移动到其下的子元素的XML节点上
                    if (!property.IsDefaultCollection)
                    {
                        //反序列化当前元素中的Attributes到元素属性集中
                        this.DeserializeAttributes(reader, element);

                        //将当前读取器移动到集合成员元素上
                        reader.ReadToDescendant(string.IsNullOrWhiteSpace(property.ElementName) ? collection.ElementName : property.ElementName);
                    }
                }

                //调用当前配置元素对象的反序列化方法
                element.DeserializeElement(reader.ReadSubtree());
            }
        }
示例#4
0
    public void LoadMachine(string sName)
    {
        XmlReaderSettings settings = new XmlReaderSettings();
        int r = 0;

        Machine = new clsMachine();
        {
            settings.IgnoreWhitespace             = true;
            settings.IgnoreComments               = true;
            settings.IgnoreProcessingInstructions = true;
            settings.ProhibitDtd = true;
            settings.CloseInput  = true;
        }
        using (XmlReader xReader = XmlReader.Create(sName, settings)) {
            {
                xReader.MoveToContent();
                xReader.ReadToDescendant("Name");
                Machine.Name         = xReader.ReadElementContentAsString();
                Machine.Description  = xReader.ReadElementContentAsString();
                Machine.AbsArcCenter = bool.Parse(xReader.ReadElementContentAsString());
                Machine.LatheMinus   = bool.Parse(xReader.ReadElementContentAsString());
                Machine.HelixPitch   = bool.Parse(xReader.ReadElementContentAsString());
                Machine.BlockSkip    = xReader.ReadElementContentAsString();
                Machine.Comments     = xReader.ReadElementContentAsString();
                Machine.Endmain      = xReader.ReadElementContentAsString();
                Machine.MachineType  = (MachineType)Enum.Parse(typeof(MachineType), xReader.ReadElementContentAsString());
                Machine.RotaryAxis   = (Axis)Enum.Parse(typeof(Axis), xReader.ReadElementContentAsString());
                Machine.RotaryDir    = (RotaryDirection)Enum.Parse(typeof(RotaryDirection), xReader.ReadElementContentAsString());
                Machine.Precision    = int.Parse(xReader.ReadElementContentAsString());
                Machine.ProgramId    = xReader.ReadElementContentAsString();
                Machine.SubReturn    = xReader.ReadElementContentAsString();
                Machine.RotPrecision = int.Parse(xReader.ReadElementContentAsString());
                Machine.RotaryType   = (RotaryMotionType)Enum.Parse(typeof(RotaryMotionType), xReader.ReadElementContentAsString());
                Machine.Searchstring = xReader.ReadElementContentAsString();
                for (r = 0; r <= Machine.ViewAngles.Length - 1; r++)
                {
                    Machine.ViewAngles[r] = float.Parse(xReader.ReadElementContentAsString());
                }
                for (r = 0; r <= Machine.ViewShift.Length - 1; r++)
                {
                    Machine.ViewShift[r] = float.Parse(xReader.ReadElementContentAsString());
                }
                Machine.Absolute    = xReader.ReadElementContentAsString();
                Machine.Incremental = xReader.ReadElementContentAsString();
                Machine.CCArc       = xReader.ReadElementContentAsString();
                Machine.CWArc       = xReader.ReadElementContentAsString();
                Machine.DrillRapid  = xReader.ReadElementContentAsString();
                for (r = 0; r <= Machine.Drills.Length - 1; r++)
                {
                    Machine.Drills[r] = xReader.ReadElementContentAsString();
                }
                Machine.Linear         = xReader.ReadElementContentAsString();
                Machine.Rapid          = xReader.ReadElementContentAsString();
                Machine.ReturnLevel[0] = xReader.ReadElementContentAsString();
                Machine.ReturnLevel[1] = xReader.ReadElementContentAsString();
                Machine.Rotary         = xReader.ReadElementContentAsString();
                Machine.XYplane        = xReader.ReadElementContentAsString();
                Machine.XZplane        = xReader.ReadElementContentAsString();
                Machine.YZplane        = xReader.ReadElementContentAsString();
                Machine.Subcall        = xReader.ReadElementContentAsString();
                Machine.SubRepeats     = xReader.ReadElementContentAsString();
            }
        }
        mMachines.Add(Machine);
        if (MachineLoaded != null)
        {
            MachineLoaded(Machine);
        }
    }
        void ReadTranslateArrayResponse(IAsyncResult asyncResult)
        {
            TranslateTextArrayData translationData = null;
            HttpWebRequest         request         = null;
            HttpWebResponse        response        = null;

            try
            {
                translationData = asyncResult.AsyncState as TranslateTextArrayData;
                request         = translationData.translationWebRequest as HttpWebRequest;
                response        = request.EndGetResponse(asyncResult) as HttpWebResponse;
                using (Stream stream = response.GetResponseStream())
                {
                    List <string> translatedTexts = new List <string>();
                    using (XmlReader reader = XmlReader.Create(stream))
                    {
                        while (reader.Read())
                        {
                            if (reader.NodeType == XmlNodeType.Element)
                            {
                                if (reader.Name == "TranslateArrayResponse")
                                {
                                    if (reader.ReadToDescendant("TranslatedText"))
                                    {
                                        do
                                        {
                                            translatedTexts.Add(reader.ReadString());
                                        }while (reader.ReadToNextSibling("TranslatedText"));
                                    }
                                }
                            }
                        }
                    }

                    Debug.Log("Successfully translated keys!");
                    if (translationData.eventHandler != null)
                    {
                        translationData.eventHandler(true, translationData.keys, translatedTexts);
                    }
                    translationData.eventHandler = null;
                }
            }
            catch (WebException exception)
            {
                Debug.LogError("Failed to translate text array! error: " + exception.Message);
                using (Stream streamResponse = exception.Response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(streamResponse))
                    {
                        Debug.LogError(reader.ReadToEnd());
                    }
                }
                if (translationData.eventHandler != null)
                {
                    translationData.eventHandler(false, null, null);
                }
                translationData.eventHandler = null;
            }
            finally
            {
                if (response != null)
                {
                    response.Close();
                    response = null;
                }
            }
        }
        public override void GenerateTestReport(TextWriter writer, XmlReader reader)
        {
            if (!reader.ReadToFollowing("test-results"))
            {
                return;
            }

            long.TryParse(reader["errors"], out var errors);
            long.TryParse(reader["failures"], out var failures);
            if (errors == 0 && failures == 0)
            {
                return;
            }

            writer.WriteLine("<div style='padding-left: 15px;'>");
            writer.WriteLine("<ul>");

            void write_failure()
            {
                var    name    = reader["name"];
                string?message = null;
                var    depth   = reader.Depth;

                if (reader.ReadToDescendant("message"))
                {
                    message = reader.ReadElementContentAsString();
                    // ReadToParent
                    while (depth > reader.Depth && reader.Read())
                    {
                    }
                }
                var message_block = message?.IndexOf('\n') >= 0;

                writer.WriteLine("<li>");
                writer.Write(name.AsHtml());
                if (!string.IsNullOrEmpty(message))
                {
                    writer.Write(": ");
                    if (message_block)
                    {
                        writer.WriteLine("<div style='padding-left: 15px;'>");
                    }

                    writer.Write(message.AsHtml());
                    if (message_block)
                    {
                        writer.WriteLine("</div>");
                    }
                }
                writer.WriteLine("</li>");
            }

            while (reader.ReadToFollowing("test-suite"))
            {
                if (reader["type"] == "Assembly")
                {
                    continue;
                }

                var result = reader["result"];
                if (result != "Error" && result != "Failure")
                {
                    continue;
                }

                if (result == "Error")
                {
                    write_failure();
                }

                var depth = reader.Depth;

                while (reader.Read())
                {
                    if (reader.NodeType != XmlNodeType.Element || reader.Name != "test-case")
                    {
                        continue;
                    }

                    result = reader["result"];
                    if (result == "Error" || result == "Failure")
                    {
                        write_failure();
                    }

                    if (reader.Depth < depth)
                    {
                        break;
                    }
                }
            }

            writer.WriteLine("</ul>");
            writer.WriteLine("</div>");
        }
示例#7
0
 public void Reset()
 {
     reader = new XmlTextReader(filePath);
     reader.ReadToDescendant("Event");
 }
示例#8
0
	protected void LoadPosition(XmlReader reader) {
		reader.ReadToFollowing ("Position");
		reader.ReadToDescendant ("x");
		Vector3 loadedPosition = new Vector3 ();
		loadedPosition.x = reader.ReadElementContentAsFloat ();
		reader.ReadToNextSibling ("y");
		loadedPosition.y = reader.ReadElementContentAsFloat ();
		reader.ReadToNextSibling ("z");
		loadedPosition.z = reader.ReadElementContentAsFloat ();
		transform.position = loadedPosition;
		reader.ReadEndElement ();
	}
示例#9
0
 public override bool ReadToDescendant(string name)
 {
     return(innerReader.ReadToDescendant(name));
 }
示例#10
0
 public static void ReadReadingMeaning(Kanji kanji, XmlReader reader)
 {
     reader.ReadToDescendant("rmgroup");
     ReadRMGroup(kanji, reader.ReadSubtree());
     reader.Close();
 }
示例#11
0
        public MFTestResults SPOTXml_XmlReader_MethodsTest3()
        {
            /// <summary>
            /// Tests all of the XmlReader methods in SPOT.Xml
            /// </summary>
            ///
            bool testResult = true;

            try
            {
                Log.Comment("Creating XmlReader with Stream");
                XmlReader testReader = XmlReader.Create(new TestStream());

                Log.Comment("Close");
                testReader.Close();
                if (testReader.ReadState != ReadState.Closed)
                {
                    testResult = false;
                    Log.Exception("Close did not function properly");
                }

                testReader = XmlReader.Create(new TestStream());

                Log.Comment("GetAttribute");
                try
                {
                    if ("" == testReader.GetAttribute(0))
                    {
                        testResult = false;
                        Log.Exception("GetAttribute succeeded with 0 attributes");
                    }
                }
                catch (ArgumentOutOfRangeException e) {
                    Log.Exception("ArgumentOutOfRangeException caught in SPOTXml_XmlReader_MethodsTest3::GetAttribute(0): ", e);
                }

                //  Add Additional tests for the overloaded GetAttribute
                //  public abstract string GetAttribute(string name);
                //  public abstract string GetAttribute(string name, string namespaceURI);

                Log.Comment("IsStartElement");
                if (!testReader.IsStartElement())
                {
                    testResult = false;
                    Log.Exception("IsStartElement returned false before read");
                }

                testReader.Read();
                if (!testReader.IsStartElement())
                {
                    testResult = false;
                    Log.Exception("IsStartElement returned false after read to 1st elt");
                }

                testReader.Read();
                testReader.Read();
                if (testReader.IsStartElement())
                {
                    testResult = false;
                    Log.Exception("IsStartElement returned true after read to an end elt");
                }

                testReader = XmlReader.Create(new TestStream());

                if (!testReader.IsStartElement("root"))
                {
                    testResult = false;
                    Log.Exception("IsStartElement(string) returned false for root");
                }

                if (testReader.IsStartElement("TestElement1"))
                {
                    testResult = false;
                    Log.Exception("IsStartElement(string) returned true for TestElement1");
                }


                if (testReader.IsStartElement("FakeData"))
                {
                    testResult = false;
                    Log.Exception("IsStartElement(string) returned true for FakeData");
                }

                testReader = XmlReader.Create(new TestStream());

                if (!testReader.IsStartElement("root", ""))
                {
                    testResult = false;
                    Log.Exception("IsStartElement(string,string) returned false for root, namespace");
                }

                if (testReader.IsStartElement("root", "FakeNamespaceURI"))
                {
                    testResult = false;
                    Log.Exception("IsStartElement(string,string) returned true for root, FakeNamespaceURI");
                }

                if (testReader.IsStartElement("TestElement1", ""))
                {
                    testResult = false;
                    Log.Exception("IsStartElement(string,string) returned true for TestElement1");
                }


                testReader = XmlReader.Create(new TestStream());

                if (testReader.LookupNamespace("XT") != null)
                {
                    testResult = false;
                    Log.Exception("LookupNamespace returned incorrect data");
                }

                testResult &= testReader.Read();

                if (testReader.LookupNamespace("XT") != "TestNS")
                {
                    testResult = false;
                    Log.Exception("LookupNamespace returned incorrect data after read");
                }

                if (testReader.LookupNamespace("") != "")
                {
                    testResult = false;
                    Log.Exception("LookupNamespace returned incorrect data for bad arg after read");
                }

                testReader = XmlReader.Create(new TestStream());

                Log.Comment("MoveToX methods");
                testReader.MoveToContent();
                if (testReader.Name != "root")
                {
                    testResult = false;
                    Log.Exception("MoveToContent went to wrong node");
                }

                testReader.MoveToElement();
                if (testReader.Name != "root")
                {
                    testResult = false;
                    Log.Exception("MoveToElementwent to wrong node");
                }

                testResult &= testReader.MoveToFirstAttribute();
                if (testReader.Name != "xmlns:XT")
                {
                    testResult = false;
                    Log.Exception("MoveToFirstAttribute went to wrong node");
                }

                testResult &= testReader.MoveToNextAttribute();
                if (testReader.Name != "XT:TestLocalName")
                {
                    testResult = false;
                    Log.Exception("MoveToFirstAttribute went to wrong node");
                }

                Log.Comment("ReadElementString");
                testReader = XmlReader.Create(new TestStream());

                //TODO: Exception testing here under investigation
                //testReader.ReadElementString();

                testReader.Read();
                testReader.Read();
                testReader.Read();
                if (testReader.ReadElementString() != "")
                {
                    testResult = false;
                    Log.Exception("ReadElementString returned bad data for empty node");
                }
                testReader.Read();
                if (testReader.ReadElementString() != "TestElement2Data")
                {
                    testResult = false;
                    Log.Exception("ReadElementString returned bad data for full node");
                }

                testReader = XmlReader.Create(new TestStream());

                testReader.Read();
                testReader.Read();
                testReader.Read();
                if (testReader.ReadString() != "")
                {
                    testResult = false;
                    Log.Exception("ReadString returned bad data for empty node");
                }
                testReader.Read();
                testReader.Read();
                if (testReader.ReadString() != "TestElement2Data")
                {
                    testResult = false;
                    Log.Exception("ReadString returned bad data for full node");
                }

                testReader = XmlReader.Create(new TestStream());

                testReader.Read();
                testReader.Read();
                testReader.Read();
                if (testReader.ReadElementString("ChildOfTestElement1") != "")
                {
                    testResult = false;
                    Log.Exception("ReadElementString returned bad data for empty node");
                }
                testReader.Read();
                if (testReader.ReadElementString("TestElement2") != "TestElement2Data")
                {
                    testResult = false;
                    Log.Exception("ReadElementString returned bad data for full node");
                }

                testReader = XmlReader.Create(new TestStream());

                testReader.Read();
                testReader.Read();
                testReader.Read();
                if (testReader.ReadElementString("ChildOfTestElement1", "") != "")
                {
                    testResult = false;
                    Log.Exception("ReadElementString returned bad data for empty node");
                }
                testReader.Read();
                if (testReader.ReadElementString("TestElement2", "") != "TestElement2Data")
                {
                    testResult = false;
                    Log.Exception("ReadElementString returned bad data for full node");
                }

                testReader = XmlReader.Create(new TestStream());
                //Add tests for overloaded ReadStartElement
                // public virtual void ReadStartElement(string name);
                // public virtual void ReadStartElement(string localname, string ns);
                testReader.ReadStartElement();
                if (testReader.Name != "TestElement1")
                {
                    testResult = false;
                    Log.Exception("ReadStartElement failed on start element");
                }

                try
                {
                    testReader.ReadEndElement();
                    testResult = false;
                    Log.Comment("FAILURE - ReadEndElement succeded on Start element ");
                }
                catch (XmlException e) {
                    Log.Exception("XMLException - ReadEndElement succeeded on Start element ", e);
                }
                testReader.Read();
                testReader.Read();
                testReader.ReadEndElement();
                if (testReader.Name != "TestElement2")
                {
                    testResult = false;
                    Log.Exception("ReadEndElement failed on end element");
                }

                testReader.Read();

                try
                {
                    testReader.ReadStartElement();
                    testResult = false;
                    Log.Comment("FAILURE - ReadStartElement succeeded on end element ");
                }
                catch (XmlException e) {
                    Log.Exception("ReadStartElement failed on end element", e);
                }


                testReader = XmlReader.Create(new TestStream());
                //Add tests for the overloaded ReadToDescendant
                // public virtual bool ReadToDescendant(string localName, string namespaceURI);
                testReader.ReadToDescendant("ChildOfTestElement1");
                if (testReader.Name != "ChildOfTestElement1")
                {
                    testResult = false;
                    Log.Exception("ReadToDescendant read to wrong location");
                }

                testReader = XmlReader.Create(new TestStream());
                // public virtual bool ReadToDescendant(string Name)
                // passing in empty string.
                try
                {
                    testReader.ReadToDescendant("");
                }
                catch (ArgumentException e)
                {
                    if (testReader.Name != "")
                    {
                        testResult = false;
                        Log.Exception("ReadToDescendant read to a location erroneously ", e);
                    }
                }


                testReader = XmlReader.Create(new TestStream());
                testReader.ReadToDescendant("ChildOfTestElement2");
                if (testReader.Name != "")
                {
                    testResult = false;
                    Log.Exception("ReadToDescendant read to a location erroneously");
                }

                testReader = XmlReader.Create(new TestStream());
                testReader.ReadToDescendant("ChildOfTestElement1", "");
                if (testReader.Name != "ChildOfTestElement1")
                {
                    testResult = false;
                    Log.Exception("ReadToDescendant with namesapce read to wrong location");
                }

                testReader = XmlReader.Create(new TestStream());
                testReader.ReadToDescendant("ChildOfTestElement2", "");
                if (testReader.Name != "")
                {
                    testResult = false;
                    Log.Exception("ReadToDescendant with namesapce read to a location erroneously");
                }

                testReader = XmlReader.Create(new TestStream());
                //Add tests for the overloaded ReadToDescendant
                // public virtual bool ReadToFollowing(string localName, string namespaceURI);

                testReader.ReadToFollowing("ChildOfTestElement1");
                if (testReader.Name != "ChildOfTestElement1")
                {
                    testResult = false;
                    Log.Exception("ReadToFollowing read to wrong location");
                }

                testReader = XmlReader.Create(new TestStream());
                testReader.ReadToFollowing("ChildOfTestElement2");
                if (testReader.Name != "")
                {
                    testResult = false;
                    Log.Exception("ReadToFollowing read to a location erroneously");
                }

                testReader = XmlReader.Create(new TestStream());
                testReader.ReadToFollowing("ChildOfTestElement1", "");
                if (testReader.Name != "ChildOfTestElement1")
                {
                    testResult = false;
                    Log.Exception("ReadToFollowing with namesapce read to wrong location");
                }

                testReader = XmlReader.Create(new TestStream());
                testReader.ReadToFollowing("ChildOfTestElement2", "");
                if (testReader.Name != "")
                {
                    testResult = false;
                    Log.Exception("ReadToFollowing with namesapce read to a location erroneously");
                }


                Log.Comment("ReadToNextSibling method");
                testReader = XmlReader.Create(new TestStream());
                testReader.Read();
                testReader.Read();
                if (!testReader.ReadToNextSibling("TestElement2"))
                {
                    testResult = false;
                    Log.Exception("ReadToNextSibling return false for TestElement2");
                }

                testReader = XmlReader.Create(new TestStream());
                testReader.Read();
                if (testReader.ReadToNextSibling("TestElement1", ""))
                {
                    testResult = false;
                    Log.Exception("Bug 57189: ReadToNextSibling return true for TestElement1");
                }

                testReader = XmlReader.Create(new TestStream());
                testReader.Read();
                testReader.Read();
                if (!testReader.ReadToNextSibling("TestElement2", ""))
                {
                    testResult = false;
                    Log.Exception("ReadToNextSibling return false for TestElement2");
                }


                Log.Comment("Skip");
                testReader = XmlReader.Create(new TestStream());
                testReader.Read();
                testReader.Read();
                testReader.Skip();
                if (testReader.Name != "TestElement2")
                {
                    testResult = false;
                    Log.Exception("Skip failed to advance to correct node");
                }
            }
            catch (Exception e)
            {
                testResult = false;
                Log.Exception("Incorrect exception caught: ", e);
            }

            return(testResult ? MFTestResults.Pass : MFTestResults.Fail);
        }
示例#12
0
        internal static object ReadXmlValue(XmlReader reader)
        {
            switch (reader.Name)
            {
            case "null":
                reader.Read();
                return(null);

            case "undefined":
                reader.Read();
                return(Undefined.Value);

            case "true":
                reader.Read();
                return(true);

            case "false":
                reader.Read();
                return(false);

            case "string":
                return(reader.ReadElementContentAsString());

            case "number":
                string number = reader.ReadElementContentAsString();
                int    i;
                if (int.TryParse(number, out i))
                {
                    return(i);
                }
                float f;
                if (float.TryParse(number, out f))
                {
                    return(f);
                }
                double d;
                if (double.TryParse(number, out d))
                {
                    return(d);
                }
                throw new InvalidDataException("Invalid number");

            case "array":
                List <object> list = new List <object>();
                if (reader.ReadToDescendant("property"))
                {
                    do
                    {
                        reader.MoveToAttribute("id");
                        int    id    = reader.ReadContentAsInt();
                        object value = ReadXmlValue(reader);
                        list.Add(value);
                    } while (reader.ReadToNextSibling("property"));
                }
                reader.ReadEndElement();
                return(list.ToArray());

            case "object":
                Dictionary <string, object> obj = new Dictionary <string, object>();
                if (reader.ReadToDescendant("property"))
                {
                    do
                    {
                        string key   = reader.GetAttribute("id");
                        object value = ReadXmlValue(reader);
                        obj.Add(key, value);
                    } while (reader.ReadToNextSibling("property"));
                }
                reader.ReadEndElement();
                return(obj);
            }
            throw new InvalidDataException("Invalid XML data");
        }
示例#13
0
 private void ReadREle(JWord kanji, XmlReader reader)
 {
     reader.ReadToDescendant("reb");
     kanji.Reading = reader.ReadElementContentAsString();
     reader.Close();
 }
示例#14
0
 private static bool ReadToChild(XmlReader reader, int depth, string elementName, string elementNamespace = "")
 {
     return(reader.ReadToDescendant(elementName, elementNamespace) && reader.Depth == depth);
 }
示例#15
0
 public override bool ReadToDescendant(string name)
 {
     this.IsCalled = true; return(_wrappedreader.ReadToDescendant(name));
 }
示例#16
0
        internal override void ProcessXmlCore(XmlReader reader)
        {
            switch (reader.Name)
            {
            case "text-representation":
                language = reader["language"];
                script   = reader["script"];
                break;

            case "asin":
                asin = reader.ReadString();
                break;

            case "disc-list":
                if (reader.ReadToDescendant("disc"))
                {
                    List <Disc> discs = new List <Disc> ();
                    do
                    {
                        discs.Add(new Disc(reader.ReadSubtree()));
                    }while (reader.ReadToNextSibling("disc"));
                    this.discs = discs.AsReadOnly();
                }
                break;

            case "release-event-list":
                if (!AllDataLoaded)
                {
                    reader.Skip();  // FIXME this is a workaround for Mono bug 334752
                    return;
                }
                if (reader.ReadToDescendant("event"))
                {
                    List <Event> events = new List <Event> ();
                    do
                    {
                        events.Add(new Event(reader.ReadSubtree()));
                    }while (reader.ReadToNextSibling("event"));
                    this.events = events.AsReadOnly();
                }
                break;

            case "track-list":
                string offset = reader["offset"];
                if (offset != null)
                {
                    track_number = int.Parse(offset) + 1;
                }
                if (reader.ReadToDescendant("track"))
                {
                    List <Track> tracks = new List <Track> ();
                    do
                    {
                        tracks.Add(new Track(reader.ReadSubtree(), GetArtist(), AllDataLoaded));
                    }while (reader.ReadToNextSibling("track"));
                    this.tracks = tracks.AsReadOnly();
                }
                break;

            default:
                base.ProcessXmlCore(reader);
                break;
            }
        }
 public void Reset()
 {
     reader = new XmlTextReader(filePath);
     reader.ReadToDescendant("Event");
 }
示例#18
0
        /// <summary>
        /// Builds the transcript by making an API request to the SocialMiner server
        /// and splitting the result into individual transcript entries
        /// These entries are added to a linkedlist in social contact and hold the transcript data
        /// TODO: This is so bad, make it better by
        /// TODO: Make the XML parsing more explicit
        /// TODO: Standardize the refURL
        /// TODO: Figure out why "No transcript" isn't working
        /// TODO: Potentially insert reference to nebulous "make request" function to improve code duplicate problems
        /// </summary>
        public void createTranscriptLL()
        {
            //API call
            string transcriptRefUrl = refURL + "/transcript";

            //Transcript entry component variables
            double tempTimestamp;
            string tempName;
            string tempBody;

            //***************Begin Web Request Block***************\\
            //create WebRequest
            //Console.WriteLine(transcriptRefUrl);
            var httpWebRequest = (HttpWebRequest)WebRequest.Create(transcriptRefUrl);

            //Request method
            httpWebRequest.Method = "GET";

            //Add auth header
            httpWebRequest.Headers.Add("Authorization", "Basic " + socialMinerCredentials);

            //TODO: Figure out why a missing transcript returns a 404 instead of the API errors thing
            try
            {
                using (HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse())
                    using (Stream stream = response.GetResponseStream())
                        using (StreamReader reader = new StreamReader(stream))
                        {
                            raw = reader.ReadToEnd();
                        }
            }
            catch (WebException ex)
            {
                //Console.WriteLine("404!");
                transcript.AddLast(new TranscriptEntry(0, "No Name", "No Transcript"));
                return;
            }

            //***************End Web Request Block***************\\

            //***************Begin XML Parsing Block*************\\

            using (XmlReader reader = XmlReader.Create(new StringReader(raw)))
            {
                //TODO: make this better
                while (true)
                {
                    if (reader.ReadToFollowing("chat"))
                    {
                        XmlReader inner = reader.ReadSubtree();

                        inner.ReadToDescendant("time");
                        tempTimestamp = inner.ReadElementContentAsDouble();
                        //Console.WriteLine(tempTimestamp);

                        //reader.Read();

                        tempName = inner.ReadElementContentAsString();
                        //Console.WriteLine(tempName);

                        //reader.Read();
                        tempBody = inner.ReadElementContentAsString();
                        //Console.WriteLine(tempBody);

                        if (transcript.Last == null)
                        {
                            transcript.AddLast(new TranscriptEntry(tempTimestamp, tempName, tempBody));
                        }
                        else
                        {
                            transcript.AddAfter(transcript.Last, new TranscriptEntry(tempTimestamp, tempName, tempBody));
                        }
                        inner.Close();
                    }
                    else if (reader.ReadToFollowing("apiErrors"))
                    {
                        transcript.AddLast(new TranscriptEntry(0, "No Name", "No Transcript"));
                    }
                    else
                    {
                        break;
                    }
                }
            }
            //***************End XML Parsing Block***************\\

            //Begin test block
            //XDocument xDoc = XDocument.Load(raw);
        }
            private static void WaterMLSitesXMLReader(List <SiteInfoNCDC> sites, XmlReader xmlReader, string DefaultDatasetID)
            {
                xmlReader.ReadToDescendant("site", Utility.WaterMlNs);
                while (xmlReader.IsStartElement())
                {
                    xmlReader.ReadToDescendant("siteInfo", Utility.WaterMlNs);

                    XmlReader    siteReader = xmlReader.ReadSubtree();
                    SiteInfoNCDC site       = new SiteInfoNCDC();

                    site.DatasetID = DefaultDatasetID;

                    /*
                     * <ns2:siteInfo>
                     * <ns2:siteCode siteID="99999925226" network="NCDC" defaultId="true">SMITH RIVER</ns2:siteCode>
                     * <ns2:geoLocation>
                     * <ns2:geogLocation xsi:type="ns2:LatLonPointType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                     * <ns2:latitude>0.0599</ns2:latitude>
                     * <ns2:longitude>-0.12643333</ns2:longitude>
                     * </ns2:geogLocation>
                     * </ns2:geoLocation>
                     * </ns2:siteInfo>
                     */
                    siteReader.ReadStartElement();
                    while (siteReader.IsStartElement())
                    {
                        switch (siteReader.LocalName)
                        {
                        case "siteCode":

                            /*
                             * <ns2:siteCode
                             * siteID="99999925226"
                             * network="NCDC"
                             * defaultId="true">SMITH RIVER</ns2:siteCode>
                             */
                            if (siteReader.HasAttributes)
                            {
                                // siteReader.MoveToFirstAttribute();

                                while (siteReader.MoveToNextAttribute())
                                {
                                    switch (siteReader.LocalName)
                                    {
                                    case "siteID":
                                        site.StationID = siteReader.ReadContentAsString();
                                        break;

                                    case "network":
                                        break;

                                    default:
                                        break;
                                    }
                                    ;
                                }
                            }
                            siteReader.MoveToElement();
                            site.SiteName = siteReader.ReadElementContentAsString();
                            break;

                        case "geoLocation":

                            /*        <ns2:geoLocation>
                             * <ns2:geogLocation xsi:type="ns2:LatLonPointType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                             * <ns2:latitude>0.0599</ns2:latitude>
                             * <ns2:longitude>-0.12643333</ns2:longitude>
                             * </ns2:geogLocation>
                             */
                            try
                            {
                                siteReader.ReadToDescendant("latitude", Utility.WaterMlNs);
                                if (siteReader.NodeType != XmlNodeType.None)
                                {
                                    double lat     = 0.0;
                                    string lString =
                                        siteReader.ReadElementContentAsString("latitude", Utility.WaterMlNs);
                                    if (double.TryParse(
                                            lString, out lat))
                                    {
                                        site.Latitude = lat;
                                    }
                                }
                                //siteReader.ReadEndElement(); // not needed after read content
                                if (siteReader.LocalName != "longitude")
                                {
                                    siteReader.ReadToFollowing("longitude", Utility.WaterMlNs);
                                }

                                if (siteReader.NodeType != XmlNodeType.None)
                                {
                                    double lon     = 0.0;
                                    string lString =
                                        siteReader.ReadElementContentAsString("longitude", Utility.WaterMlNs);
                                    if (double.TryParse(
                                            lString, out lon))
                                    {
                                        site.Longitude = lon;
                                    }
                                }
                                //siteReader.ReadEndElement(); //long // not needed after read content
                                siteReader.ReadEndElement();     //geoglocation
                                siteReader.ReadEndElement();     // geolocation
                                break;
                            }
                            catch
                            {
                                ReadState state = siteReader.ReadState;
                                if (siteReader.NodeType == null)
                                {
                                    siteReader.Skip();
                                }
                                else
                                {
                                    siteReader.ReadEndElement();
                                }
                                break;
                            }

                        default:
                            log.Error("New Node name in site " + siteReader.Name);
                            siteReader.ReadEndElement();
                            break;
                        }
                        //siteReader.ReadEndElement();
                        //siteReader.ReadStartElement();
                    }
                    sites.Add(site);
                    xmlReader.ReadEndElement(); // siteInfo
                    xmlReader.ReadEndElement(); //site
                }
            }
示例#20
0
    void ReadXml_Tiles(XmlReader reader)
    {
        int x, y, start, end;

        if (reader.ReadToDescendant("Tile"))
        {
            do
            {
                if (reader.GetAttribute("X") != null && reader.GetAttribute("Y") != null)
                {
                    x = int.Parse(reader.GetAttribute("X"));
                    y = int.Parse(reader.GetAttribute("Y"));
                    if (x > Width || x < 0 || y > Height || y < 0)
                    {
                        Debug.LogError("(X,Y) in XML is Out of Bounds for Area (" + x + ", " + y + ")");
                        continue;
                    }
                    tiles[x, y].ReadXml(reader);
                }
                else if (reader.GetAttribute("Fill") != null)
                {
                    string fillType = reader.GetAttribute("Fill");
                    x     = int.Parse(reader.GetAttribute(fillType));
                    start = int.Parse(reader.GetAttribute("Start"));
                    end   = int.Parse(reader.GetAttribute("End"));
                    if (fillType == "Row")
                    {
                        for (int i = start; i <= end; i++)
                        {
                            tiles[i, x].ReadXml(reader);
                        }
                    }
                    else if (fillType == "Column")
                    {
                        for (int i = start; i <= end; i++)
                        {
                            tiles[x, i].ReadXml(reader);
                        }
                    }
                }
                else if (reader.GetAttribute("Row") != null || reader.GetAttribute("Column") != null)
                {
                    if (reader.GetAttribute("Row") != null)
                    {
                        y = int.Parse(reader.GetAttribute("Row"));
                        for (int i = 0; i < Width; i++)
                        {
                            tiles[i, y].ReadXml(reader);
                        }
                    }
                    else if (reader.GetAttribute("Column") != null)
                    {
                        x = int.Parse(reader.GetAttribute("Column"));
                        for (int i = 0; i < Height; i++)
                        {
                            tiles[x, i].ReadXml(reader);
                        }
                    }
                }
                else
                {
                    for (int w = 0; w < Width; w++)
                    {
                        for (int h = 0; h < Height; h++)
                        {
                            tiles[w, h].ReadXml(reader);
                        }
                    }
                }
            } while (reader.ReadToNextSibling("Tile"));
        }
    }
            private static void NCDCSitesXMLReader(List <SiteInfoNCDC> sites, XmlReader xmlReader)
            {
                xmlReader.ReadToDescendant("site");
                while (xmlReader.IsStartElement() && xmlReader.Name.Equals("site"))
                {
                    XmlReader    siteReader = xmlReader.ReadSubtree();
                    SiteInfoNCDC site       = new SiteInfoNCDC();

                    siteReader.ReadStartElement();
                    while (siteReader.IsStartElement())
                    {
                        if (siteReader.Name.Equals("site"))
                        {
                            break;
                        }
                        switch (siteReader.Name)
                        {
                        case "datasetid":
                            site.DatasetID = siteReader.ReadString();
                            break;

                        case "stationid":
                            site.StationID = siteReader.ReadString();
                            break;

                        case "name":
                            site.SiteName = siteReader.ReadString();
                            break;

                        case "lat":
                            site.SetLatitude(siteReader.ReadString());
                            break;

                        case "lon":
                            site.SetLongitude(siteReader.ReadString());
                            break;

                        case "lowdate":
                            site.SetBeginDate(siteReader.ReadString());
                            break;

                        case "highdate":
                            site.SetEndDate(siteReader.ReadString());
                            break;

                        case "elev":
                            site.SetElevation(siteReader.ReadString());
                            break;

                        case "abbrev":
                            siteReader.ReadString();
                            break;

                        default:
                            log.Error("New Node name in site " + siteReader.Name);
                            siteReader.ReadString();
                            break;
                        }
                        try
                        {
                            if (!siteReader.IsEmptyElement)
                            {
                                siteReader.ReadEndElement();
                            }
                            else
                            {
                                siteReader.Skip();
                            }
                        } catch
                        {
                            siteReader.Read();
                            // ignore
                        }

                        //siteReader.ReadStartElement();
                    }
                    sites.Add(site);

                    if (!xmlReader.IsStartElement())
                    {
                        xmlReader.ReadEndElement();
                    }
                }
            }
示例#22
0
 public override bool ReadToDescendant(string name)
 {
     IncrementCount();
     return(_innerReader.ReadToDescendant(name));
 }
示例#23
0
        public void loadXMLFile(List <Employee> list)
        {
            bool readEndOfFile = false;

            string path = @"C:\Users\Anhkhoi\Source\Repos\CECS-475\CECS 475 - Lab Assignment 05\CECS 475 - Lab Assignment 05\employee_xml.xml";

            XmlReaderSettings settings = new XmlReaderSettings();

            settings.IgnoreWhitespace = true;
            settings.IgnoreComments   = true;
            // create the XmlReader object
            XmlReader xmlIn = XmlReader.Create(path, settings);

            while (!readEndOfFile)
            {
                // read past all nodes to the first Product node
                if (xmlIn.ReadToDescendant("Employee"))
                {
                    // create one Product object for each Product node
                    do
                    {
                        SalariedEmployee sEmployee = new SalariedEmployee();
                        sEmployee.Tag = xmlIn["Tag"];
                        if (sEmployee.Tag == "SalariedEmployee")
                        {
                            xmlIn.ReadStartElement("Employee");
                            sEmployee.FirstName            = xmlIn.ReadElementContentAsString();
                            sEmployee.LastName             = xmlIn.ReadElementContentAsString();
                            sEmployee.SocialSecurityNumber = xmlIn.ReadElementContentAsString();
                            sEmployee.GetPaymentAmount     = xmlIn.ReadElementContentAsDecimal();
                            list.Add(sEmployee);
                        }
                        else if (sEmployee.Tag == "HourlyEmployee")
                        {
                            HourlyEmployee hEmployee = new HourlyEmployee();

                            xmlIn.ReadStartElement("Employee");
                            hEmployee.FirstName            = xmlIn.ReadElementContentAsString();
                            hEmployee.LastName             = xmlIn.ReadElementContentAsString();
                            hEmployee.SocialSecurityNumber = xmlIn.ReadElementContentAsString();
                            hEmployee.Wage  = xmlIn.ReadElementContentAsDecimal();
                            hEmployee.Hours = xmlIn.ReadElementContentAsDecimal();
                            list.Add(hEmployee);
                        }
                        else if (sEmployee.Tag == "CommissionEmployee")
                        {
                            CommissionEmployee employee = new CommissionEmployee();
                            xmlIn.ReadStartElement("Employee");
                            employee.FirstName            = xmlIn.ReadElementContentAsString();
                            employee.LastName             = xmlIn.ReadElementContentAsString();
                            employee.SocialSecurityNumber = xmlIn.ReadElementContentAsString();
                            employee.GrossSales           = xmlIn.ReadElementContentAsDecimal();
                            employee.CommissionRate       = xmlIn.ReadElementContentAsDecimal();
                            list.Add(employee);
                        }
                        else if (sEmployee.Tag == "BasePlusCommissionEmployee")
                        {
                            BasePlusCommissionEmployee employee = new BasePlusCommissionEmployee();
                            xmlIn.ReadStartElement("Employee");
                            employee.FirstName            = xmlIn.ReadElementContentAsString();
                            employee.LastName             = xmlIn.ReadElementContentAsString();
                            employee.SocialSecurityNumber = xmlIn.ReadElementContentAsString();
                            employee.GrossSales           = xmlIn.ReadElementContentAsDecimal();
                            employee.CommissionRate       = xmlIn.ReadElementContentAsDecimal();
                            employee.BaseSalary           = xmlIn.ReadElementContentAsDecimal();
                            list.Add(employee);
                        }
                    }while (xmlIn.ReadToNextSibling("Employee"));
                }

                readEndOfFile = true;
            }

            // close the XmlReader object
            xmlIn.Close();
        }
示例#24
0
        public static List <Provider> ParseManifest(XmlReader reader, string fileName = null)
        {
            var ret = new List <Provider>();

            if (reader.ReadToDescendant("events"))
            {
                using (var events = reader.ReadSubtree())
                {
                    if (events.ReadToDescendant("provider"))
                    {
                        do
                        {
                            ret.Add(new Provider(reader, fileName));
                        } while (events.ReadToNextSibling("provider"));
                    }
                }
            }

            // Resolve all the localization strings that may have been used.
            var stringMap = new Dictionary <string, string>();

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element && reader.Name == "string")
                {
                    var id    = reader.GetAttribute("id");
                    var value = reader.GetAttribute("value");
                    stringMap[id] = value;
                }
            }
            if (0 < stringMap.Count)
            {
                foreach (var provider in ret)
                {
                    if (provider.m_keywordNames != null)
                    {
                        for (int i = 0; i < provider.m_keywordNames.Length; i++)
                        {
                            Provider.Replace(ref provider.m_keywordNames[i], stringMap);
                        }
                    }

                    if (provider.m_taskNames != null)
                    {
                        foreach (var taskId in new List <int>(provider.m_taskNames.Keys))
                        {
                            var taskName = provider.m_taskNames[taskId];
                            if (Provider.Replace(ref taskName, stringMap))
                            {
                                provider.m_taskNames[taskId] = taskName;
                            }
                        }
                    }

                    if (provider.m_opcodeNames != null)
                    {
                        foreach (var opcodeId in new List <int>(provider.m_opcodeNames.Keys))
                        {
                            var opcodeName = provider.m_opcodeNames[opcodeId];
                            if (Provider.Replace(ref opcodeName, stringMap))
                            {
                                provider.m_opcodeNames[opcodeId] = opcodeName;
                            }
                        }
                    }

                    foreach (Event ev in provider.Events)
                    {
                        ev.UpdateStrings(stringMap);
                    }
                }
            }

            return(ret);
        }
示例#25
0
        static void Main(string[] args)
        {
            test_w_point_size();
            //test_getInstance();
            //test_w_knowtype();
            //test_w_resolver();

            lTableInfo_config tbl1 = new lTableInfo_config();

            tbl1.m_tblName  = "receipts";
            tbl1.m_tblAlias = "Bang thu";
            tbl1.m_cols     = new lColInfo[]
            {
                new lColInfo {
                    m_alias = "alias", m_field = "field", m_lookupTbl = "lookupTbl", m_type = lColInfo.lColType.text
                },
                new lColInfo {
                    m_alias = "col2", m_field = "field", m_lookupTbl = "lookupTbl", m_type = lColInfo.lColType.text
                },
            };
            lTableInfo_config[] tbls = new lTableInfo_config[] { tbl1 };

            DataContractJsonSerializer jsonz = new DataContractJsonSerializer(typeof(lTableInfo_config[]));

            jsonz.WriteObject(Console.OpenStandardOutput(), tbls);

            lReceiptsSearchPanel panel        = new lReceiptsSearchPanel();
            lSearchPanel_config  panel_config = (lSearchPanel_config)panel;

            lSearchPanel_config[] panels = new lSearchPanel_config[] { panel_config };
            //jsonz = new DataContractJsonSerializer(typeof(lSearchPanel_config[]));
            //jsonz.WriteObject(Console.OpenStandardOutput(), panels);
            XmlSerializer xs = new XmlSerializer(typeof(lColInfo));

            xs.Serialize(Console.OpenStandardOutput(), tbl1.m_cols[0]);
            //xs.Deserialize()

            lSearchCtrl_config[] ctrls = new lSearchCtrl_config[]
            {
                new lSearchCtrl_config {
                    m_fieldName = "date", m_pos = new myPoint(1, 1), m_size = new mySize(1, 1)
                },
                new lSearchCtrl_config {
                    m_fieldName = "receipt_number", m_pos = new myPoint(1, 2), m_size = new mySize(1, 1), m_searchMatch = true
                }
            };
            DataContractJsonSerializerSettings jsonsettings = new DataContractJsonSerializerSettings();

            jsonz = new DataContractJsonSerializer(typeof(lSearchCtrl_config[]));
            jsonz.WriteObject(Console.OpenStandardOutput(), ctrls);

            {
                DataContractSerializerSettings settings = new DataContractSerializerSettings();
                XmlDictionary dic = new XmlDictionary();
                settings.RootName = new XmlDictionaryString(dic, "tableInfo", 1);

                DataContractSerializer tmpz = new DataContractSerializer(typeof(lTableInfo_config), settings);
                tmpz.WriteObject(Console.OpenStandardOutput(), tbl1);
            }

            DataContractSerializer xmlz  = new DataContractSerializer(typeof(lTableInfo_config[]));
            DataContractSerializer xmlz2 = new DataContractSerializer(typeof(lSearchCtrl_config[]));

            string      pathXml = "config.xml";
            XmlDocument doc     = new XmlDocument();
            XmlWriter   wrt;

            //XmlReader rd;
            if (!System.IO.File.Exists(pathXml))
            {
                XmlWriterSettings settings = new XmlWriterSettings();
                settings.Indent      = true;
                settings.IndentChars = "\t";

                wrt = XmlWriter.Create("config.xml", settings);
                wrt.WriteStartElement("config");

                wrt.WriteStartElement("dataPanel");
                xmlz.WriteObjectContent(wrt, tbls);
                wrt.WriteEndElement();

                wrt.WriteStartElement("searchPanel");
                //xmlz2.WriteObjectContent(wrt, ctrls);
                //jsonz.WriteObject(wrt, ctrls);
                jsonz.WriteObjectContent(wrt, ctrls);
                wrt.WriteEndElement();

                wrt.WriteEndElement();
                wrt.Close();
            }

            //doc.Load(pathXml);
            //XmlNode node = doc.SelectSingleNode("searchPanel");
            XmlReader rd = XmlReader.Create(pathXml);

            rd.Read();

            rd.ReadToFollowing("dataPanel");
            var objs1 = xmlz.ReadObject(rd, false);

            rd.ReadToFollowing("searchPanel");
#if false
            rd.ReadToDescendant("root");
            rd.MoveToContent();
            rd.MoveToElement();
            rd.ReadEndElement();
            rd.Skip();
            Console.WriteLine(rd.Name);

            var objs = jsonz.ReadObject(rd);
#else
            var objs = jsonz.ReadObject(rd, false);
#endif
            //XmlNode node = doc.FirstChild;
            //doc.SelectSingleNode("dataPanel");
        }
示例#26
0
        public static List <PropTO> ReadSiblings(XmlReader reader)
        {
            List <PropTO> list  = new List <PropTO>();
            bool          found = reader.ReadToDescendant(PROP);

            if (found)
            {
                string taskEncoding   = null;
                string resultEncoding = null;
                string dataEncoding   = null;
                do
                {
                    PropTO prop = new PropTO();
                    reader.MoveToAttribute(KEY);
                    prop.SetKey(reader.ReadContentAsString());
                    reader.MoveToContent();

                    /*This method reads the start tag, the contents of the element, and moves the reader past
                     * the end element tag. It expands entities and ignores processing instructions and comments.
                     * The element can only contain simple content. That is, it cannot have child elements.
                     */

                    if (resultEncoding != null && PropTO.KEY_RESULT.Equals(prop.GetKey()))
                    {
                        prop.SetEncoding(resultEncoding);
                    }
                    if (taskEncoding != null && PropTO.KEY_TASK.Equals(prop.GetKey()))
                    {
                        prop.SetEncoding(taskEncoding);
                    }
                    if (dataEncoding != null && PropTO.KEY_DATA.Equals(prop.GetKey()))
                    {
                        prop.SetEncoding(dataEncoding);
                    }

                    if (resultEncoding == null && PropTO.KEY_RESULT.Equals(prop.GetKey()) ||
                        taskEncoding == null && PropTO.KEY_TASK.Equals(prop.GetKey()) ||
                        dataEncoding == null && PropTO.KEY_DATA.Equals(prop.GetKey()))
                    {
                        // Expect subtags like "<A><B>Hello</B></A>"
                        string tmp = reader.ReadInnerXml();
                        tmp = tmp.Trim();
                        if (tmp.StartsWith("<![CDATA["))
                        { // strip CDATA token
                            tmp = tmp.Substring("<![CDATA[".Length);
                            if (tmp.EndsWith("]]>"))
                            {
                                tmp = tmp.Substring(0, tmp.Length - "]]>".Length);
                            }
                        }
                        else
                        {
                            tmp = org.xmlBlaster.util.XmlBuffer.UnEscape(tmp);
                        }
                        //XmlReader nestedReader = reader.ReadSubtree();
                        //tmp = reader.ReadString(); is empty if contains tags
                        //tmp = reader.Value; is empty if contains tags
                        prop.SetValue(tmp);
                    }
                    else
                    {
                        string val = reader.ReadElementContentAsString();
                        val = org.xmlBlaster.util.XmlBuffer.UnEscape(val);
                        prop.SetValue(val);
                    }

                    // Check if base64 encoded (this tag is a previous sibling before the content prop)
                    if (PropTO.KEY_ENCODING.Equals(prop.GetKey()))
                    {
                        taskEncoding = prop.GetValueRaw();
                    }
                    if (PropTO.KEY_RESULTENCODING.Equals(prop.GetKey()))
                    {
                        resultEncoding = prop.GetValueRaw();
                    }
                    if (PropTO.KEY_DATAENCODING.Equals(prop.GetKey()))
                    {
                        dataEncoding = prop.GetValueRaw();
                    }

                    list.Add(prop);
                } while (PROP.Equals(reader.LocalName));//reader.ReadToNextSibling(PROP));
            }
            return(list);
        }
示例#27
0
            //Ideally this should be done outside of the main thread, or in some async way that won't hold up the game thread
            public void Load(string url, string user, string password)
            {
                Items = new List <MediaFeedItem>();

                XmlReaderSettings settings = new XmlReaderSettings {
                    NameTable = new NameTable()
                };
                XmlNamespaceManager xmlns = new XmlNamespaceManager(settings.NameTable);

                xmlns.AddNamespace("media", @"http://search.yahoo.com/mrss/");
                XmlParserContext context = new XmlParserContext(null, xmlns, string.Empty, XmlSpace.Default);

                if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(password))
                {
                    XmlUrlResolver resolver = new XmlUrlResolver();
                    resolver.Credentials = new System.Net.NetworkCredential(user, password);
                    settings.XmlResolver = resolver;
                }

                using (XmlReader reader = XmlReader.Create(url, settings, context))
                {
                    for (int i = 0; i < 9; i++)
                    {
                        if (reader.ReadToFollowing("item"))
                        {
                            MediaFeedItem item = new MediaFeedItem();
                            Items.Add(item);

                            if (reader.ReadToFollowing("title"))
                            {
                                item.Title = reader.ReadElementContentAsString();
                            }

                            if (reader.ReadToFollowing("description"))
                            {
                                item.Description = reader.ReadElementContentAsString();
                            }

                            if (reader.ReadToFollowing("media:content"))
                            {
                                reader.MoveToFirstAttribute();
                                item.ContentType = reader.Value;

                                reader.MoveToNextAttribute();
                                item.ContentURL = reader.Value;

                                reader.MoveToContent();
                                if (reader.ReadToDescendant("media:keywords"))
                                {
                                    item.Keywords = reader.ReadElementContentAsString();
                                }

                                if (reader.ReadToNextSibling("media:thumbnail"))
                                {
                                    item.ThumbnailURL = reader.ReadElementContentAsString();
                                }
                            }
                        }
                        else
                        {
                            break;
                        }
                    }

                    reader.Close();
                }
            }
示例#28
0
        // TODO: adopt for retrieval of information for protection, deletion, etc.
        internal PageInfo(string xml)
        {
            XmlReader xr = XmlReader.Create(new StringReader(xml));

            string normalisedFrom = null, redirectFrom = null;

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml);

            var redirects = doc.GetElementsByTagName("r");

            if (redirects.Count >= 1) //We have redirects
            {
                if (redirects[0].Attributes["from"].Value == redirects[redirects.Count - 1].Attributes["to"].Value)
                {
                    //Redirect loop
                    TitleChangedStatus = PageTitleStatus.RedirectLoop;
                    OriginalTitle      = Title = redirects[0].Attributes["from"].Value;
                    Exists             = true;
                    Text = "";
                    return; //We're not going to have any page text
                }

                redirectFrom = redirects[0].Attributes["from"].Value;
                //Valid redirects
                TitleChangedStatus = redirects.Count == 1
                                         ? PageTitleStatus.Redirected
                                         : PageTitleStatus.MultipleRedirects;
            }
            else
            {
                TitleChangedStatus = PageTitleStatus.NoChange;
            }

            if (!xr.ReadToFollowing("page"))
            {
                throw new Exception("Cannot find <page> element");
            }

            //Normalised before redirect, so would be root. Could still be multiple redirects, or looped
            var normalised = doc.GetElementsByTagName("n");

            if (normalised.Count > 0)
            {
                normalisedFrom = normalised[0].Attributes["from"].Value;

                if (TitleChangedStatus == PageTitleStatus.NoChange)
                {
                    TitleChangedStatus = PageTitleStatus.Normalised;
                }
                else
                {
                    TitleChangedStatus |= PageTitleStatus.Normalised;
                }
            }

            //Normalisation occurs before redirection, so if that exists, that is the title passed to the API
            if (!string.IsNullOrEmpty(normalisedFrom))
            {
                OriginalTitle = normalisedFrom;
            }
            else if (!string.IsNullOrEmpty(redirectFrom))
            {
                OriginalTitle = redirectFrom;
            }

            Exists         = (xr.GetAttribute("missing") == null); //if null, page exists
            IsWatched      = (xr.GetAttribute("watched") != null);
            EditToken      = xr.GetAttribute("edittoken");
            TokenTimestamp = xr.GetAttribute("starttimestamp");

            long revId;

            RevisionID = long.TryParse(xr.GetAttribute("lastrevid"), out revId) ? revId : -1;

            Title       = xr.GetAttribute("title");
            NamespaceID = int.Parse(xr.GetAttribute("ns"));

            if (xr.ReadToDescendant("protection") && !xr.IsEmptyElement)
            {
                foreach (XmlNode xn in doc.GetElementsByTagName("pr"))
                {
                    switch (xn.Attributes["type"].Value)
                    {
                    case "edit":
                        EditProtection = xn.Attributes["level"].Value;
                        break;

                    case "move":
                        MoveProtection = xn.Attributes["level"].Value;
                        break;

                    case "create":
                        CreateProtection = xn.Attributes["level"].Value;
                        break;
                    }
                }
            }

            xr.ReadToFollowing("revisions");

            xr.ReadToDescendant("rev");
            Timestamp = xr.GetAttribute("timestamp");
            Text      = Tools.ConvertToLocalLineEndings(xr.ReadString());
        }
        /// <summary>
        /// Deserialized an XML response into an instance of this object.
        /// </summary>
        /// <param name="reader">An XmlReader object.</param>
        public void ReadXml(XmlReader reader)
        {
            reader.MoveToFirstAttribute();
            do
            {
                switch (reader.Name)
                {
                case "id":
                    this.id = reader.ReadContentAsString();
                    break;

                case "type":
                    this.type = reader.ReadContentAsString();
                    break;

                case "userDefined":
                    this.userDefined = reader.ReadContentAsBoolean();
                    break;

                case "visible":
                    this.visible = reader.ReadContentAsBoolean();
                    break;

                case "editable":
                    this.editable = reader.ReadContentAsBoolean();
                    break;
                }
            } while (reader.MoveToNextAttribute());

            List <string>       values = new List <string>();
            List <RelationLink> links  = new List <RelationLink>();

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                    case "values":
                        reader.ReadToDescendant("value");
                        values.Add(reader.ReadString());
                        break;

                    case "value":
                        values.Add(reader.ReadString());
                        break;

                    case "name":
                        this.name = reader.ReadString();
                        break;

                    case "link":
                    case "links":
                        if (reader.Name == "links")
                        {
                            reader.ReadToDescendant("link");
                        }
                        RelationLink link = new RelationLink();

                        reader.MoveToFirstAttribute();
                        link.Rel = "self";

                        while (reader.MoveToNextAttribute())
                        {
                            if (reader.Name == "href")
                            {
                                link.URL = reader.ReadContentAsString();
                            }
                            else if (reader.Name == "rel")
                            {
                                link.Rel = reader.ReadContentAsString();
                            }
                        }

                        links.Add(link);

                        break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "metadataField")
                {
                    reader.Read();
                    break;
                }
            }

            this.values = values.ToArray();
            this.links  = new RelationLink[] { };
        }
示例#30
0
        public static IEnumerable <XElement> StreamElements(XmlReader reader, string[] elementNames)
        {
            if (elementNames.Length == 1)
            {
                string elementName = elementNames[0];
                if (elementName == "*")
                {
                    bool isEmpty = reader.IsEmptyElement;
                    reader.ReadStartElement();
                    if (isEmpty == false)
                    {
                        do
                        {
                            // Read document till next element
                            reader.MoveToContent();

                            if (reader.NodeType == XmlNodeType.Element)
                            {
                                // Empty element?
                                isEmpty = reader.IsEmptyElement;

                                // Decode child element
                                XElement el = XElement.ReadFrom(reader)
                                              as XElement;
                                if (el != null)
                                {
                                    yield return(el);
                                }

                                reader.MoveToContent();
                            }
                            else if (reader.NodeType == XmlNodeType.Text)
                            {
                                reader.Skip();   // Skip text
                            }
                        } while (reader.NodeType != XmlNodeType.EndElement);
                    }
                }
                else
                {
                    while (reader.ReadToFollowing(elementName))
                    {
                        yield return((XElement)XNode.ReadFrom(reader));
                    }
                }
            }
            else
            {
                string elementName = elementNames[0];
                if (elementName == "*")
                {
                    bool isEmpty = reader.IsEmptyElement;
                    reader.ReadStartElement();
                    if (isEmpty == false)
                    {
                        do
                        {
                            // Read document till next element
                            reader.MoveToContent();

                            if (reader.NodeType == XmlNodeType.Element)
                            {
                                // Empty element?
                                isEmpty = reader.IsEmptyElement;

                                foreach (var i in StreamElements(reader, elementNames.Skip(1).ToArray()))
                                {
                                    yield return(i);
                                }

                                reader.MoveToContent();
                            }
                            else if (reader.NodeType == XmlNodeType.Text)
                            {
                                reader.Skip();   // Skip text
                            }
                        } while (reader.NodeType != XmlNodeType.EndElement);
                    }
                }
                else
                {
                    while (reader.ReadToDescendant(elementName))
                    {
                        foreach (var i in StreamElements(reader, elementNames.Skip(1).ToArray()))
                        {
                            yield return(i);
                        }
                    }
                }
            }
        }
示例#31
0
                //[Variation("Read on descendant with same names", Priority = 1, Params = new object[] { "NNS" })]
                //[Variation("Read on descendant with same names", Priority = 1, Params = new object[] { "DNS" })]
                //[Variation("Read on descendant with same names", Priority = 1, Params = new object[] { "NS" })]
                public void v3()
                {
                    string type = Variation.Params[0].ToString();

                    XmlReader DataReader = GetReader(new StringReader(_xmlStr));

                    PositionOnElement(DataReader, "root");

                    // Doing a sequential read.
                    switch (type)
                    {
                    case "NNS":
                        DataReader.ReadToDescendant("elem");
                        int depth = DataReader.Depth;
                        if (DataReader.HasAttributes)
                        {
                            TestLog.WriteLine("Positioned on wrong element");
                            throw new TestException(TestResult.Failed, "");
                        }
                        TestLog.Compare(DataReader.ReadToDescendant("elem"), false, "There are no more descendants");
                        TestLog.Compare(DataReader.NodeType, XmlNodeType.EndElement, "Wrong node type");
                        while (DataReader.Read())
                        {
                            ;
                        }
                        DataReader.Dispose();

                        return;

                    case "DNS":
                        DataReader.ReadToDescendant("elem", "elem");
                        if (DataReader.HasAttributes)
                        {
                            if (DataReader.GetAttribute("xmlns") == null)
                            {
                                TestLog.WriteLine("Positioned on wrong element, not on DNS");
                                throw new TestException(TestResult.Failed, "");
                            }
                        }
                        TestLog.Compare(DataReader.ReadToDescendant("elem", "elem"), false, "There are no more descendants");
                        TestLog.Compare(DataReader.NodeType, XmlNodeType.EndElement, "Wrong node type");
                        while (DataReader.Read())
                        {
                            ;
                        }
                        DataReader.Dispose();

                        return;

                    case "NS":
                        DataReader.ReadToDescendant("e:elem");
                        if (DataReader.HasAttributes)
                        {
                            if (DataReader.GetAttribute("xmlns:e") == null)
                            {
                                TestLog.WriteLine("Positioned on wrong element, not on DNS");
                                throw new TestException(TestResult.Failed, "");
                            }
                        }
                        TestLog.Compare(DataReader.ReadToDescendant("e:elem"), false, "There are no more descendants");
                        TestLog.Compare(DataReader.NodeType, XmlNodeType.EndElement, "Wrong node type");
                        while (DataReader.Read())
                        {
                            ;
                        }
                        DataReader.Dispose();

                        return;

                    default:
                        throw new TestFailedException("Error in Test type");
                    }
                }
示例#32
0
        internal static PSSessionConfigurationData Create(string configurationData)
        {
            PSSessionConfigurationData configuration = new PSSessionConfigurationData();

            if (string.IsNullOrEmpty(configurationData))
            {
                return(configuration);
            }

            configurationData = Unescape(configurationData);

            XmlReaderSettings readerSettings = new XmlReaderSettings
            {
                CheckCharacters = false,
                IgnoreComments  = true,
                IgnoreProcessingInstructions = true,
                MaxCharactersInDocument      = 10000,
                XmlResolver      = null,
                ConformanceLevel = ConformanceLevel.Fragment
            };

            using (XmlReader reader = XmlReader.Create(new StringReader(configurationData), readerSettings))
            {
                // read the header <SessionConfigurationData>
                if (reader.ReadToFollowing(SessionConfigToken))
                {
                    bool isParamFound = reader.ReadToDescendant(ParamToken);
                    while (isParamFound)
                    {
                        if (!reader.MoveToAttribute(NameToken))
                        {
                            throw PSTraceSource.NewArgumentException(configurationData,
                                                                     RemotingErrorIdStrings.NoAttributesFoundForParamElement,
                                                                     NameToken, ValueToken, ParamToken);
                        }

                        string optionName = reader.Value;

                        if (string.Equals(optionName, PrivateDataToken, StringComparison.OrdinalIgnoreCase))
                        {
                            // this is a PrivateData element which we
                            // need to process
                            if (reader.ReadToFollowing(PrivateDataToken))
                            {
                                string privateData = reader.ReadOuterXml();

                                AssertValueNotAssigned(PrivateDataToken, configuration._privateData);
                                configuration._privateData = privateData;
                            }
                        }
                        else
                        {
                            if (!reader.MoveToAttribute(ValueToken))
                            {
                                throw PSTraceSource.NewArgumentException(configurationData,
                                                                         RemotingErrorIdStrings.NoAttributesFoundForParamElement,
                                                                         NameToken, ValueToken, ParamToken);
                            }

                            string optionValue = reader.Value;
                            configuration.Update(optionName, optionValue);
                        }

                        // move to next Param token.
                        isParamFound = reader.ReadToFollowing(ParamToken);
                    }
                }
            }

            configuration.CreateCollectionIfNecessary();

            return(configuration);
        }
示例#33
0
                //[Variation("Simple positive test", Priority = 0, Params = new object[] { "NNS" })]
                //[Variation("Simple positive test", Priority = 0, Params = new object[] { "DNS" })]
                //[Variation("Simple positive test", Priority = 0, Params = new object[] { "NS" })]
                public void v()
                {
                    string type = Variation.Params[0].ToString();

                    XmlReader DataReader = GetReader(new StringReader(_xmlStr));

                    PositionOnElement(DataReader, "root");

                    switch (type)
                    {
                    case "NNS":
                        DataReader.ReadToDescendant("elem");
                        if (DataReader.HasAttributes)
                        {
                            TestLog.WriteLine("Positioned on wrong element");
                            TestLog.WriteIgnore(DataReader.ReadInnerXml() + "\n");
                            throw new TestException(TestResult.Failed, "");
                        }
                        while (DataReader.Read())
                        {
                            ;
                        }
                        DataReader.Dispose();
                        return;

                    case "DNS":
                        DataReader.ReadToDescendant("elem", "elem");
                        if (DataReader.HasAttributes)
                        {
                            if (DataReader.GetAttribute("xmlns") == null)
                            {
                                TestLog.WriteLine("Positioned on wrong element, not on DNS");
                                throw new TestException(TestResult.Failed, "");
                            }
                        }
                        while (DataReader.Read())
                        {
                            ;
                        }
                        DataReader.Dispose();
                        return;

                    case "NS":
                        DataReader.ReadToDescendant("e:elem");
                        if (DataReader.HasAttributes)
                        {
                            if (DataReader.GetAttribute("xmlns:e") == null)
                            {
                                TestLog.WriteLine("Positioned on wrong element, not on NS");
                                throw new TestException(TestResult.Failed, "");
                            }
                        }
                        while (DataReader.Read())
                        {
                            ;
                        }
                        DataReader.Dispose();
                        return;

                    default:
                        throw new TestFailedException("Error in Test type");
                    }
                }
示例#34
0
    /// <summary>
    /// Reads a specific data tag from the xml document.
    /// </summary>
    /// <param name='reader'>
    /// Reader.
    /// </param>
    private void ReadData(XmlReader reader)
    {
        //If these values are not being set,
        //something is wrong.
        string key = "ERROR";

        string value = "ERROR";

        if (reader.HasAttributes)
        {
            while (reader.MoveToNextAttribute())
            {
                if (reader.Name == "name")
                {
                    key = reader.Value;
                }
            }
        }

        //Move back to the element
        reader.MoveToElement();

        //Read the child nodes
        if (reader.ReadToDescendant("value"))
        {
            do
            {
                value = reader.ReadString();
            }
            while (reader.ReadToNextSibling("value"));
        }

        //Add the raw values to the dictionary
        textDataBase.Add(key, value);

        //Add the localized parsed values to the localizedObjectDataBase
        LocalizedObject newLocalizedObject = new LocalizedObject();
        newLocalizedObject.ObjectType = LocalizedObject.GetLocalizedObjectType(key);
        newLocalizedObject.TextValue = value;
        localizedObjectDataBase.Add(LocalizedObject.GetCleanKey(key,newLocalizedObject.ObjectType), newLocalizedObject);
    }
示例#35
0
	protected virtual void LoadStatus (XmlReader reader) {
		reader.ReadToFollowing ("Status");
		reader.ReadToDescendant ("HP");
		HP = reader.ReadElementContentAsInt ();
	}