C# 用c读取xml文件#

C# 用c读取xml文件#,c#,.net,xml,linq-to-xml,C#,.net,Xml,Linq To Xml,我有一个奇怪的xml文件,我想读c#,我在互联网上搜索了很多,但没有找到多少适合我的案例 <XMLFile> <Template> <TestElement ID="22"> <PlugIn Name="ESA620" TestID="1240"/> <Info> <Type>Current 1</Type> <Parameter>Current 1&l

我有一个奇怪的xml文件,我想读c#,我在互联网上搜索了很多,但没有找到多少适合我的案例

<XMLFile>
<Template>
<TestElement ID="22">
    <PlugIn Name="ESA620" TestID="1240"/>
    <Info>
        <Type>Current 1</Type>
        <Parameter>Current 1</Parameter>
        <Name>Current 1</Name>
    </Info>
    <ExpectedResult>
        <Standard AlphaName="IEC" CompleteName="IEC 60601" Type="Predefined">
            <Limit Key="::ST">
                <Unit>uA</Unit>
                <Value Type="High">100</Value>
            </Limit>
        </Standard>
    </ExpectedResult>
</TestElement>
.   .   .   .   .   .
<TestElement ID="35">
    <PlugIn Name="ESA620" TestID="1500"/>
    <Info>
        <Type>Current auxiliary</Type>
        <Name>Current auxiliary</Name>
    </Info>
    <ExpectedResult>
        <Standard AlphaName="IEC" CompleteName="IEC 60601">
            <Limit Key="::B">
                <Unit>uA</Unit>
            </Limit>
            <Limit Key="::BF">
                <Unit>uA</Unit>
            </Limit>
            <Limit Key="::CF">
                <Unit>uA</Unit>
            </Limit>
            <Limit Key="::B_DC">
                <Unit>uA</Unit>
            </Limit>
            <Limit Key="::BF_DC">
                <Unit>uA</Unit>
            </Limit>
            <Limit Key="::CF_DC">
                <Unit>uA</Unit>
            </Limit>
        </Standard>
    </ExpectedResult>
    <PlugInData PlugIn="ESA620">
        <ValueFilter>None</ValueFilter>
        <EnableBtn Skip="True" NA="True" Step="True"/>
        <ModuleOptions Sep="False" Exp="False" Stop="False"/>
        <TestOptions>
            <Run Opt="False" HaltOnFail="True" MultiPE="False" TotalLeakage="False" MeasType="0" TestVoltage="0" AppliedParts="0"/>
            <StopOnPC Before="False" After="False"/>
            <Delay On="2" Off="0"/>
        </TestOptions>
    </PlugInData>
    <TestElement ID="36">
        <PlugIn Name="ESA620" TestID="1510"/>
            <Info>
                <Type>Patient Current auxiliary </Type>
                <Parameter>Normal Condition</Parameter>
                <Name>Normal Condition</Name>
            </Info>
            <ExpectedResult>
            <Standard AlphaName="IEC" CompleteName="IEC 60601" Type="Predefined">
                <Limit Key="::B">
                    <Unit>uA</Unit>
                    <Value Type="High">100</Value>
                </Limit>
                <Limit Key="::BF">
                    <Unit>uA</Unit>
                    <Value Type="High">100</Value>
                </Limit>
                <Limit Key="::CF">
                    <Unit>uA</Unit>
                    <Value Type="High">10</Value>
                </Limit>
                <Limit Key="::B_DC">
                    <Unit>uA</Unit>
                    <Value Type="High">10</Value>
                </Limit>
                <Limit Key="::BF_DC">
                    <Unit>uA</Unit>
                    <Value Type="High">10</Value>
                </Limit>
                <Limit Key="::CF_DC">
                    <Unit>uA</Unit>
                    <Value Type="High">10</Value>
                </Limit>
            </Standard>
        </ExpectedResult>
    </TestElement>
    <TestElement ID="37">
        <PlugIn Name="ESA620" TestID="1520"/>
        <Info>
            <Type>Patient Current auxiliary</Type>
            <Parameter>Neutral open</Parameter>
            <Name>Neutral open</Name>
        </Info>
        <ExpectedResult>
            <Standard AlphaName="IEC" CompleteName="IEC 60601" Type="Predefined">
                <Limit Key="::B">
                    <Unit>uA</Unit>
                    <Value Type="High">500</Value>
                </Limit>
                <Limit Key="::BF">
                    <Unit>uA</Unit>
                    <Value Type="High">500</Value>
                </Limit>
                <Limit Key="::CF">
                    <Unit>uA</Unit>
                    <Value Type="High">50</Value>
                </Limit>
                <Limit Key="::B_DC">
                    <Unit>uA</Unit>
                    <Value Type="High">50</Value>
                </Limit>
                <Limit Key="::BF_DC">
                    <Unit>uA</Unit>
                    <Value Type="High">50</Value>
                </Limit>
                <Limit Key="::CF_DC">
                    <Unit>uA</Unit>
                    <Value Type="High">50</Value>
                </Limit>
            </Standard>
        </ExpectedResult>
    </TestElement>
    <TestElement ID="38">
.   .   .   .   .
    </TestElement>
</TestElement>
</Template>
<Result>
<ResultItem MTI="1" ElementID="22">
    <Status>Passed</Status>
    <Measurement Key="::ST">
        <Description>normal conditions, reverse polarity</Description>
        <Value Type="Float">.2</Value>
        <Unit>uA</Unit>
        <Status>Passed</Status>
    </Measurement>
</ResultItem>
.   .   .   .   .   
<ResultItem ElementID="35">
    <Status>Passed</Status>
    <ResultItem MTI="1" ElementID="36">
        <Status>Passed</Status>
        <Measurement Key="::1::B">
            <Description>patient circuit</Description>
            <Value Type="Float">.1</Value>
            <Unit>uA</Unit>
            <Status>Passed</Status>
        </Measurement>
        <Measurement Key="::2::CF">
            <Description>ECG</Description>
            <Value Type="Float">.1</Value>
            <Unit>uA</Unit>
            <Status>Passed</Status>
        </Measurement>
        <Measurement Key="::3::B">
            <Description>Spo2</Description>
            <Value Type="Float">.1</Value>
            <Unit>uA</Unit>
            <Status>Passed</Status>
        </Measurement>
        <Measurement Key="::4::B">
            <Description>NiBp</Description>
            <Value Type="Float">.1</Value>
            <Unit>uA</Unit>
            <Status>Passed</Status>
        </Measurement>
    </ResultItem>
    <ResultItem MTI="1" ElementID="37">
        <Status>Passed</Status>
        <Measurement Key="::1::B">
            <Description>Patient circuit</Description>
            <Value Type="Float">.1</Value>
            <Unit>uA</Unit>
            <Status>Passed</Status>
        </Measurement>
        <Measurement Key="::2::CF">
            <Description>ECG</Description>
            <Value Type="Float">.1</Value>
            <Unit>uA</Unit>
            <Status>Passed</Status>
        </Measurement>
        <Measurement Key="::3::B">
            <Description>Spo2</Description>
            <Value Type="Float">.1</Value>
            <Unit>uA</Unit>
            <Status>Passed</Status>
        </Measurement>
        <Measurement Key="::4::B">
            <Description>NiBp</Description>
            <Value Type="Float">.1</Value>
            <Unit>uA</Unit>
            <Status>Passed</Status>
        </Measurement>
    </ResultItem>
<ResultItem MTI="1" ElementID="38">
.   .   .   .   .   .
</ResultItem>
</ResultItem>
</Result>
</XMLFile>

当前1
当前1
当前1
uA
100
.   .   .   .   .   .
电流辅助
电流辅助
uA
uA
uA
uA
uA
uA
没有一个
病人电流辅助
正常状态
正常状态
uA
100
uA
100
uA
10
uA
10
uA
10
uA
10
病人电流辅助
中性开路
中性开路
uA
500
uA
500
uA
50
uA
50
uA
50
uA
50
.   .   .   .   .
通过
正常条件下,极性相反
2.
uA
通过
.   .   .   .   .   
通过
通过
病人回路
1.
uA
通过
心电图
1.
uA
通过
血氧饱和度
1.
uA
通过
尼伯普
1.
uA
通过
通过
病人回路
1.
uA
通过
心电图
1.
uA
通过
血氧饱和度
1.
uA
通过
尼伯普
1.
uA
通过
.   .   .   .   .   .
我的xml文件由两部分组成,第一部分是模板,第二部分是值。 我想要得到的东西,例如:

当前1:当前1,单位:uA,上限:100,值:.2,状态 通过

当前辅助设备:当前辅助设备:患者当前辅助设备: 患者回路:单位:uA,上限:100,值:.1状态:通过

心电图:单位:uA,上限:10,值:.1状态:通过

Spo2:单位:uA,上限:100,值:.1状态:已通过

NiBp:单位:uA,上限:100,值:.1状态:已通过

中性开路:患者电流辅助:患者电路:单位:uA, 上限:500,值:.1状态:已通过

心电图:单位:uA,上限:50,值:.1状态:通过

Spo2:单位:uA,上限:500,值:.1状态:已通过

NiBp:单位:uA,上限:500,值:.1状态:已通过

如何使用c#读取此xml?

string str=
@"
所容纳之物
";
XDocument doc=XDocument.Parse(str);
控制台写入线(doc);

这不是解决方案!xml文件是唯一的,无法读取@用户2235718为什么不呢?这段代码将把任何有效的xml文件加载到内存中,然后您就可以使用它了
string str =
@"<?xml version=""1.0""?>
<!-- comment at the root level -->
<Root>
    <Child>Content</Child>
</Root>";
XDocument doc = XDocument.Parse(str);
Console.WriteLine(doc);