繁体   English   中英

如何使用C#检索XML中嵌套元素的元素值

[英]How to retrieve element values of nested elements in XML with C#

<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);
        }

SelectSingleNode返回(顾名思义)不超过一个节点。 请尝试XmlNodeList timeFields = configDoc.SelectNodes("/config/timeDifferenceFields/TimeDifference")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM