C# 选择子XML作为字符串

C# 选择子XML作为字符串,c#,.net,xml,C#,.net,Xml,我有以下XML: <Run id="1"> <Servers> <Server id="1" fqdn="ENG-HSINGH"> <Roles> <Role id="1" rootFolder="C:\DeleteMe"/> </Roles> </Server> </Servers> <Roles> <Ro

我有以下XML:

<Run id="1">
  <Servers>
    <Server id="1" fqdn="ENG-HSINGH">
      <Roles>
        <Role id="1" rootFolder="C:\DeleteMe"/>
      </Roles>
    </Server>
  </Servers>
  <Roles>
    <Role id="1">
      <ValidationInformation>
        <ValidationObject>
          <FileSystem>
            <Directory path="\A\HTML">
              <File id="1" path="\A\HTML\1.HTM"/>
              <File id="2" path="\A\HTML\2.ASP" />
            </Directory>
            <Directory path="\B\EntireFolder">
              <File id="8" path="\B\EntireFolder\1.txt"/>
              <File id="9" path="\B\EntireFolder\2.txt"/>
              <File id="10" path="\B\EntireFolder\3.txt"/>
              <File id="11" path="\B\EntireFolder\4.txt"/>
              <File id="12" path="\EHR\EntireFolder\5.txt"/>
            </Directory>
            <Files>
              <File id="4" path="\C\6.txt"/>
            </Files>
          </FileSystem>
        </ValidationObject>
      </ValidationInformation>
    </Role>
    <Role id="2">
      <ValidationInformation>
        <ValidationObject>
          <FileSystem>
            <Directory path="\D\HTML">
              <File id="13" path="\D\HTML\1.HTM"/>
            </Directory>
            <Directory path="\E">
              <File id="14" path="\E\1.txt"/>
            </Directory>
            <Files>
              <File id="15" path="\F\1.txt"/>
            </Files>
          </FileSystem>
        </ValidationObject>
      </ValidationInformation>
    </Role>
  </Roles>
</Run>
我知道我可以读取每个角色的ValidationInformation节点下的XML节点,并粘贴生成的XML,但这似乎不是一个好方法

有没有更干净的方法

谢谢,
这对我来说很有用:

Dictionary<int, string> myDictionary = new Dictionary<int, string>();
            XmlDocument xml = new XmlDocument();
            xml.LoadXml(<myInputXMLAsString>);
            XmlNodeList xnList = xml.SelectNodes("/Run/Roles");

            foreach (XmlNode xn in xnList)
            {
                int roleId = int.Parse(xn["Role"].Attributes["id"].Value);
                XmlDocument subXmlDocument = new XmlDocument();
                subXmlDocument.LoadXml(xn.InnerXml);
                XmlNodeList subXn = subXmlDocument.SelectNodes("/Role/ValidationInformation");
                string validationInfo = subXn[0].InnerXml;
                roleIdToValidationInformationDictionary.Add(roleId, validationInfo);
            }
Dictionary myDictionary=newdictionary();
XmlDocument xml=新的XmlDocument();
LoadXml();
XmlNodeList xnList=xml.SelectNodes(“/Run/Roles”);
foreach(xnList中的XmlNode xn)
{
int roleId=int.Parse(xn[“角色”].Attributes[“id”].Value);
XmlDocument subXmlDocument=新的XmlDocument();
LoadXml(xn.InnerXml);
XmlNodeList subXn=subXmlDocument.SelectNodes(“/Role/ValidationInformation”);
字符串validationInfo=subXn[0]。InnerXml;
添加(roleId,validationInfo);
}
Dictionary<int, string> myDictionary = new Dictionary<int, string>();
            XmlDocument xml = new XmlDocument();
            xml.LoadXml(<myInputXMLAsString>);
            XmlNodeList xnList = xml.SelectNodes("/Run/Roles");

            foreach (XmlNode xn in xnList)
            {
                int roleId = int.Parse(xn["Role"].Attributes["id"].Value);
                XmlDocument subXmlDocument = new XmlDocument();
                subXmlDocument.LoadXml(xn.InnerXml);
                XmlNodeList subXn = subXmlDocument.SelectNodes("/Role/ValidationInformation");
                string validationInfo = subXn[0].InnerXml;
                roleIdToValidationInformationDictionary.Add(roleId, validationInfo);
            }