【问题标题】:Mono for Android: XML data to spinner适用于 Android 的 Mono:XML 数据到微调器
【发布时间】:2013-01-24 17:48:45
【问题描述】:

我的 XML 示例:

<Table diffgr:id="Table17" msdata:rowOrder="16">
    <IdRec>17</IdRec>
    <FieldId>1213</FieldId>
    <FieldDesc>Equipment</FieldDesc>
    <FieldType>OptionBOX</FieldType>
    <isReadOnly>false</isReadOnly>
    <FieldValue>388</FieldValue>
    <FieldTextValue>B - satisfactory</FieldTextValue>
    <OptBox_Options>
        <Options>
            <myOPT FieldValue="387" FieldTextValue="A - good"/>
            <myOPT FieldValue="388" FieldTextValue="B - satisfactory"/>
            <myOPT FieldValue="389" FieldTextValue="C - needs change"/>        
            <myOPT FieldValue="390" FieldTextValue="D - deal"/>
        </Options>
    </OptBox_Options>
</Table>

我的问题 上面的 xml 数据来自一个 web 服务。我对 OptBox_Options 以外的任何字段都没有问题,这是我需要用来填充我的微调器的字段。因此我需要从 OptBox_Options->Options->myOpt(FieldTextValue) 获取字符串(例如:)。

如何访问这些数据?什么是最好的方法。如果你不能给我一个直接的解决方案,我会很满意这个主题的新手友好 C# 教程的链接。

问题已解决

我将我的字符串转换为 XML,然后将其转换为数据集并循环通过它...下面的代码:)

List<string> entries = new List<string>();

String rawXML = item.OptBox_Options;

StringReader stream = null;
XmlTextReader reader = null;

DataSet xmlDS = new DataSet();
stream = new StringReader(rawXML);
// Load the XmlTextReader from the stream
reader = new XmlTextReader(stream);
xmlDS.ReadXml(reader);

DataSet myOPTvalues = new DataSet();
myOPTvalues = xmlDS;

foreach (DataRow row in myOPTvalues.Tables[0].Rows)
{
var optItem = new PrevzemSpin();
optItem.FieldValue = row["FieldValue"].ToString();
if (optItem.FieldValue.Equals("")) optItem.FieldValue = null;

optItem.FieldTextValue = row["FieldTextValue"].ToString();
if (optItem.FieldTextValue.Equals("")) optItem.FieldTextValue = null;

entries.Add(optItem.FieldTextValue);
SpinnerValue.Tag = optItem.FieldValue;
}

【问题讨论】:

标签: c# android xamarin.android spinner android-spinner


【解决方案1】:

使用 xml 解析技术,例如 XmlPullParserSAX parserDOM parser

XML Pull parser是android开发者网站推荐的解析器Here是Pull parser的教程。

【讨论】:

  • 问题 vas 解决了另一种方法,但这在其他一些问题上很方便^_^'。无论如何感谢您的帮助!
【解决方案2】:

我将我的字符串转换为 XML,然后将其转换为数据集并循环通过它...下面的代码:)

List<string> entries = new List<string>();

String rawXML = item.OptBox_Options;

StringReader stream = null;
XmlTextReader reader = null;

DataSet xmlDS = new DataSet();
stream = new StringReader(rawXML);
// Load the XmlTextReader from the stream
reader = new XmlTextReader(stream);
xmlDS.ReadXml(reader);

DataSet myOPTvalues = new DataSet();
myOPTvalues = xmlDS;

foreach (DataRow row in myOPTvalues.Tables[0].Rows)
{
    var optItem = new PrevzemSpin();
    optItem.FieldValue = row["FieldValue"].ToString();
    if (optItem.FieldValue.Equals("")) optItem.FieldValue = null;

    optItem.FieldTextValue = row["FieldTextValue"].ToString();
    if (optItem.FieldTextValue.Equals("")) optItem.FieldTextValue = null;

    entries.Add(optItem.FieldTextValue);
    SpinnerValue.Tag = optItem.FieldValue;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多