2013-04-02 85 views
-9

我有一个奇怪的XML文件,我想读C#中,我已经在互联网上搜索了很多,但并没有找到太多了我的情况阅读使用C#的XML文件

<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> 

我的XML文件由两部分组成,第一部分是模板,第二部分是价值观。 我试图让例如:

电流1:电流1,单位:UA,限制高:100,值:。2,传递

当前Auxliary状态 :当前辅助:患者目前辅助: 患者回路:单位:UA,限制高:100,值:.1状态:已通过

心电图:单位:UA,限制高:10,值:.1状态:已通过

血氧饱和度:单位:uA,极限高:100,值:.1状态:通过

血压:单位:UA,限制高:100,值:.1状态:已通过

中立的开放:患者辅助电流:患者回路:单位:UA, 限制高:500,值:.1状态:已通过

心电图:单位:UA,限制高:50,值:.1状态:已通过

血氧:单位:UA,限制高:500,值:.1状态:已通过

NiBp:单位:uA,限制高:500,值:.1状态:通过

我该如何读取这个XML与C#?

回答

1

XDocument.Load

XDocument.Parse

string str = 
@"<?xml version=""1.0""?> 
<!-- comment at the root level --> 
<Root> 
    <Child>Content</Child> 
</Root>"; 
XDocument doc = XDocument.Parse(str); 
Console.WriteLine(doc); 
+0

这是解决不了问题!该XML文件是唯一的,不能被读取! – user2235718

+0

@ user2235718为什么不呢?此代码会将任何有效的xml文件加载到内存中,然后您就可以使用它了 –