自从我上次尝试编程以来已经有一段时间了,以前从未使用过 XML。我有一个显示 XML 的内部网站
   <Source>
    <AllowsDuplicateFileNames>YES</AllowsDuplicateFileNames> 
    <Description>The main users ....</Description> 
    <ExportSWF>FALSE</ExportSWF> 
    <HasDefaultPublishDir>NO</HasDefaultPublishDir> 
    <Id>28577db1-956c-41f6-b775-a278c39e20a1</Id> 
    <IsAssociated>YES</IsAssociated> 
    <LogoURL>http://servername:8080/logos/9V0.png</LogoURL> 
    <Name>Portal1</Name> 
    <RequiredParameters>
     <RequiredParameter>
      <Id>user_name</Id> 
      <Name>UserID</Name> 
      <PlaceHolder>username</PlaceHolder> 
      <ShowAsDescription>true</ShowAsDescription> 
     </RequiredParameter>
   </RequiredParameters>
我不想要子标签中的值,有时会有多个门户,因此需要/想要使用列表。我只需要名称和 ID 标签内的值。此外,如果有一个空白 ID 标签,我不想存储其中任何一个。
我目前的处理方法没有按预期工作:
String URLString = "http://servername:8080/roambi/SourceManager";
XmlTextReader reader = new XmlTextReader(URLString);
List<Portal> lPortals = new List<Portal>();
String sPortal = "";
String sId = "";
while (reader.Read())
{
    //Get Portal ID
    if (reader.NodeType == XmlNodeType.Element && reader.Name == "Id")
    {
        reader.Read();
        if (reader.NodeType == XmlNodeType.Text)
        {
            sId = reader.Value;
        }
    }
    //Get Portal Name
    if (reader.NodeType == XmlNodeType.Element && reader.Name == "Name")
    {
        reader.Read();
        if (reader.NodeType == XmlNodeType.Text)
        {
            sPortal = reader.Value;
        }
        //Fill Portal List with Name and ID
        if (sId != "" && sPortal != "")
        {
            lPortals.Add(new Portal
            {
                Portalname = sPortal,
                Portalid = sId
            });
        }
    }
}
foreach (Portal i in lPortals)
{
    Console.WriteLine(i.Portalname + " " + i.Portalid);
}
看我的标准课
class Portal 
{
    private String portalname;
    private String portalid;
    public String Portalname
    {
        get { return portalname; }
        set { portalname = value; }
    }
    public String Portalid
    {
        get { return portalid; }
        set { portalid = value; }
    }
}
请给我一些建议并指出我的方向,正如我所说,自从我上次编程以来已经有一段时间了。我当前的输出如下:
Portal1 28577db1-956c-41f6-b775-a278c39e20a1
UserID user_name
UserID 在子节点中,我不想显示子节点