0

私の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;
}
4

2 に答える 2

1

XmlPullParserSAX parserまたはなどの xml 解析手法を使用しますDOM parser

androidの開発者サイトで推奨されているパーサーは XML Pull parser です Pull parserのチュートリアルは こちらです。

于 2013-01-23T10:18:50.160 に答える
0

文字列を 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;
}
于 2013-01-24T09:48:45.060 に答える