1
<config>
<timeDifferenceFields>
    <TimeDifference>
        <StartTimeField>txt_SoReinigungUhrzeitvonZ1</StartTimeField>
        <EndTimeField>txt_SoReinigungUhrzeitbisZ1</EndTimeField>
        <OutputTimeField>txt_SoReinigungZ1</OutputTimeField>
    </TimeDifference>
    <TimeDifference>
        <StartTimeField>txt_SoReinigungUhrzeitvonZ2</StartTimeField>
        <EndTimeField>txt_SoReinigungUhrzeitbisZ2</EndTimeField>
        <OutputTimeField>txt_SoReinigungZ2</OutputTimeField>
    </TimeDifference>
    <TimeDifference>
        <StartTimeField>txt_SoReinigungUhrzeitvonZ3</StartTimeField>
        <EndTimeField>txt_SoReinigungUhrzeitbisZ3</EndTimeField>
        <OutputTimeField>txt_SoReinigungZ3</OutputTimeField>
    </TimeDifference>
</timeDifferenceFields>
</config>

やあ、

誰かがこの簡単な作業を手伝ってくれませんか、わかりません...

上記の XML ファイルの TimeDifference-Fields を繰り返し処理したいと考えています。TimeDifference ノードごとに、指定された XML 値を使用してメソッドを呼び出したいと考えています。

これでNPEに遭遇します...誰か助けてください

     XmlDocument configDoc = new XmlDocument();
        configDoc.Load(configXml);

        XmlNode timeFields = configDoc.SelectSingleNode("/config/timeDifferenceFields/TimeDifference");
        foreach (XmlNode timeNode in timeFields)
        {
        String OutputTimeField = timeNode.SelectSingleNode("OutputTimeField").InnerXml;
        String StartTimeField = timeNode.SelectSingleNode("StartTimeField").InnerXml;
        String EndTimeField = timeNode.SelectSingleNode("EndTimeField").InnerXml;
        addTimeDiffElement(inputDoc, OutputTimeField, StartTimeField, EndTimeField);
        }
4

1 に答える 1

1

SelectSingleNode(名前が示すように)複数のノードを返しません。代わりにXmlNodeList を試してくださいtimeFields = configDoc.SelectNodes("/config/timeDifferenceFields/TimeDifference")

于 2012-08-06T01:27:07.857 に答える