0

这是我的 xml 文件

<TEST>
  <Project_Name>browser</Project_Name>  

      <Setting BrowserKind ="Firefox" ></Setting>   

      <ExecuteUrl>http://yahoo.com</ExecuteUrl>

  <caseBox>      
     <test1>apple</test1>
  </caseBox>
</TEST>

这个 xml 没有任何意义,它只是一个例子。我只是想做一些练习。

这是我想要得到的三件事:

(1)火狐

(2)http://yahoo.com

(3)苹果

我使用 xmldocument,但失败了,我完全没有得到任何东西。

我怎样才能得到它们???

谢谢。

这是我获得 Firefox 的测试

这是我的代码:

       XmlDocument XmlDoc = new XmlDocument( );
       XmlDoc.Load(here I PLACE THE LOCATION OF FILE);
       XmlNodeList NodeLists = XmlDoc.SelectNodes("TEST/Setting");


        foreach (XmlNode OneNode in NodeLists)
        {

            String StrAttrValue1 = OneNode.Attributes[" Browserkind "].Value;
            String StrAttrValue2 = OneNode.InnerText;
        }
4

3 回答 3

0

Xml 区分大小写,因此要获得 BrowserKind 属性,“browserkind”将不起作用。它必须与名称完全匹配。

用 xml 文档试试这个:

String apple = doc.DocumentElement["caseBox"]["test1"].InnerText;

于 2012-05-07T08:15:51.290 回答
0

如果切换到 LINQ to XML 是一种选择,而不是旧的 Xml API,我会这样做。

var doc = XDocument.Parse(@"<TEST>
  <Project_Name>browser</Project_Name>  

      <Setting BrowserKind =""Firefox"" ></Setting>   

      <ExecuteUrl>http://yahoo.com</ExecuteUrl>

  <caseBox>      
     <test1>apple</test1>
  </caseBox>
</TEST>");


var result = (from test in doc.Elements("TEST")
              select new { BrowserKind = test.Element("Setting").Attribute("BrowserKind").Value,
                           ExecuteUrl = test.Element("ExecuteUrl").Value,
                           CaseBox = test.Element("caseBox").Element("test1").Value });
于 2012-05-07T08:07:29.453 回答
0

当您编写属性名称“Browserkind”时,似乎有多余的空格..尝试删除它们。我希望它有帮助

于 2012-05-07T08:32:42.403 回答