Beispiel #1
0
		/// <exception cref="org.xmlpull.v1.XmlPullParserException"></exception>
		/// <exception cref="System.IO.IOException"></exception>
		private static object readThisValueXml(org.xmlpull.v1.XmlPullParser parser, string
			[] name)
		{
			string valueName = parser.getAttributeValue(null, "name");
			string tagName = parser.getName();
			//System.out.println("Reading this value tag: " + tagName + ", name=" + valueName);
			object res;
			if (tagName.Equals("null"))
			{
				res = null;
			}
			else
			{
				if (tagName.Equals("string"))
				{
					string value = string.Empty;
					int eventType;
					while ((eventType = parser.next()) != org.xmlpull.v1.XmlPullParserClass.END_DOCUMENT
						)
					{
						if (eventType == org.xmlpull.v1.XmlPullParserClass.END_TAG)
						{
							if (parser.getName().Equals("string"))
							{
								name[0] = valueName;
								//System.out.println("Returning value for " + valueName + ": " + value);
								return value;
							}
							throw new org.xmlpull.v1.XmlPullParserException("Unexpected end tag in <string>: "
								 + parser.getName());
						}
						else
						{
							if (eventType == org.xmlpull.v1.XmlPullParserClass.TEXT)
							{
								value += parser.getText();
							}
							else
							{
								if (eventType == org.xmlpull.v1.XmlPullParserClass.START_TAG)
								{
									throw new org.xmlpull.v1.XmlPullParserException("Unexpected start tag in <string>: "
										 + parser.getName());
								}
							}
						}
					}
					throw new org.xmlpull.v1.XmlPullParserException("Unexpected end of document in <string>"
						);
				}
				else
				{
					if (tagName.Equals("int"))
					{
						res = System.Convert.ToInt32(parser.getAttributeValue(null, "value"));
					}
					else
					{
						if (tagName.Equals("long"))
						{
							res = long.Parse(parser.getAttributeValue(null, "value"));
						}
						else
						{
							if (tagName.Equals("float"))
							{
								res = System.Convert.ToSingle(parser.getAttributeValue(null, "value"));
							}
							else
							{
								if (tagName.Equals("double"))
								{
									res = System.Convert.ToDouble(parser.getAttributeValue(null, "value"));
								}
								else
								{
									if (tagName.Equals("boolean"))
									{
										res = bool.Parse(parser.getAttributeValue(null, "value"));
									}
									else
									{
										if (tagName.Equals("int-array"))
										{
											parser.next();
											res = readThisIntArrayXml(parser, "int-array", name);
											name[0] = valueName;
											//System.out.println("Returning value for " + valueName + ": " + res);
											return res;
										}
										else
										{
											if (tagName.Equals("map"))
											{
												parser.next();
												res = readThisMapXml(parser, "map", name);
												name[0] = valueName;
												//System.out.println("Returning value for " + valueName + ": " + res);
												return res;
											}
											else
											{
												if (tagName.Equals("list"))
												{
													parser.next();
													res = readThisListXml(parser, "list", name);
													name[0] = valueName;
													//System.out.println("Returning value for " + valueName + ": " + res);
													return res;
												}
												else
												{
													if (tagName.Equals("set"))
													{
														parser.next();
														res = readThisSetXml(parser, "set", name);
														name[0] = valueName;
														//System.out.println("Returning value for " + valueName + ": " + res);
														return res;
													}
													else
													{
														throw new org.xmlpull.v1.XmlPullParserException("Unknown tag: " + tagName);
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
			// Skip through to end tag.
			int eventType_1;
			while ((eventType_1 = parser.next()) != org.xmlpull.v1.XmlPullParserClass.END_DOCUMENT
				)
			{
				if (eventType_1 == org.xmlpull.v1.XmlPullParserClass.END_TAG)
				{
					if (parser.getName().Equals(tagName))
					{
						name[0] = valueName;
						//System.out.println("Returning value for " + valueName + ": " + res);
						return res;
					}
					throw new org.xmlpull.v1.XmlPullParserException("Unexpected end tag in <" + tagName
						 + ">: " + parser.getName());
				}
				else
				{
					if (eventType_1 == org.xmlpull.v1.XmlPullParserClass.TEXT)
					{
						throw new org.xmlpull.v1.XmlPullParserException("Unexpected text in <" + tagName 
							+ ">: " + parser.getName());
					}
					else
					{
						if (eventType_1 == org.xmlpull.v1.XmlPullParserClass.START_TAG)
						{
							throw new org.xmlpull.v1.XmlPullParserException("Unexpected start tag in <" + tagName
								 + ">: " + parser.getName());
						}
					}
				}
			}
			throw new org.xmlpull.v1.XmlPullParserException("Unexpected end of document in <"
				 + tagName + ">");
		}
Beispiel #2
0
		/// <summary>Read an int[] object from an XmlPullParser.</summary>
		/// <remarks>
		/// Read an int[] object from an XmlPullParser.  The XML data could
		/// previously have been generated by writeIntArrayXml().  The XmlPullParser
		/// must be positioned <em>after</em> the tag that begins the list.
		/// </remarks>
		/// <param name="parser">The XmlPullParser from which to read the list data.</param>
		/// <param name="endTag">Name of the tag that will end the list, usually "list".</param>
		/// <param name="name">
		/// An array of one string, used to return the name attribute
		/// of the list's tag.
		/// </param>
		/// <returns>Returns a newly generated int[].</returns>
		/// <seealso cref="readListXml(java.io.InputStream)">readListXml(java.io.InputStream)
		/// 	</seealso>
		/// <exception cref="org.xmlpull.v1.XmlPullParserException"></exception>
		/// <exception cref="System.IO.IOException"></exception>
		public static int[] readThisIntArrayXml(org.xmlpull.v1.XmlPullParser parser, string
			 endTag, string[] name)
		{
			int num;
			try
			{
				num = System.Convert.ToInt32(parser.getAttributeValue(null, "num"));
			}
			catch (System.ArgumentNullException)
			{
				throw new org.xmlpull.v1.XmlPullParserException("Need num attribute in byte-array"
					);
			}
			catch (System.ArgumentException)
			{
				throw new org.xmlpull.v1.XmlPullParserException("Not a number in num attribute in byte-array"
					);
			}
			int[] array = new int[num];
			int i = 0;
			int eventType = parser.getEventType();
			do
			{
				if (eventType == org.xmlpull.v1.XmlPullParserClass.START_TAG)
				{
					if (parser.getName().Equals("item"))
					{
						try
						{
							array[i] = System.Convert.ToInt32(parser.getAttributeValue(null, "value"));
						}
						catch (System.ArgumentNullException)
						{
							throw new org.xmlpull.v1.XmlPullParserException("Need value attribute in item");
						}
						catch (System.ArgumentException)
						{
							throw new org.xmlpull.v1.XmlPullParserException("Not a number in value attribute in item"
								);
						}
					}
					else
					{
						throw new org.xmlpull.v1.XmlPullParserException("Expected item tag at: " + parser
							.getName());
					}
				}
				else
				{
					if (eventType == org.xmlpull.v1.XmlPullParserClass.END_TAG)
					{
						if (parser.getName().Equals(endTag))
						{
							return array;
						}
						else
						{
							if (parser.getName().Equals("item"))
							{
								i++;
							}
							else
							{
								throw new org.xmlpull.v1.XmlPullParserException("Expected " + endTag + " end tag at: "
									 + parser.getName());
							}
						}
					}
				}
				eventType = parser.next();
			}
			while (eventType != org.xmlpull.v1.XmlPullParserClass.END_DOCUMENT);
			throw new org.xmlpull.v1.XmlPullParserException("Document ended before " + endTag
				 + " end tag");
		}