[英]extracting data from an xml file
我有一個字符串XML,我想將其轉換為實際的XML,並獲取其值。
我的(字符串)XML文檔如下所示:
<Folder>
<Files>
<File Id="123"
Size="111"
Name="abc"/>
</Files>
</Folder>
這就是我在做什么:
XmlDocument xml = new XmlDocument();
xml.LoadXml(stringXML);
XmlNodeList xnList = xml.SelectNodes("/Folder/Files");
foreach (XmlNode xn in xnList)
{
string a = xn["File Id"].InnerText;
}
在這里,我的xml
變量(XmlDocument)在“ InnerXml”屬性內具有我的XML: < Folder>< Files>
等...。
xnList
(XmlNodeList)在其“ InnerXml”屬性下具有< File Id="123" Size="111" Name="abc"/>
。
和xn
XmlNode與xnList完全相同,因此沒有xn["File Id"]
這樣的東西。
如何從XML文件中獲取信息?
目前尚不清楚您要做什么,但是我建議您使用LINQ to XML-這樣會使事情變得更簡單:
var doc = XDocument.Parse(stringXML);
// Or doc.Root.Element("Files").Elements("File")
foreach (var file in doc.Descendants("File"))
{
int id = (int) file.Attribute("Id");
int size = (int) file.Attribute("Size");
string name = (string) file.Attribute("Name");
// Do whatever you need...
}
或者,如果您只想收集信息:
var doc = XDocument.Parse(stringXML);
var query = doc.Descendants("File").Select(file => new {
Id = (int) file.Attribute("Id"),
Size = (int) file.Attribute("Size"),
Name = (string) file.Attribute("Name")
});
這是正確的方法:
var stringXML = "<Folder><Files><File Id=\"123\" Size=\"111\" Name=\"abc\"/></Files></Folder> ";
XmlDocument xml = new XmlDocument();
xml.LoadXml(stringXML);
XmlNodeList xnList = xml.SelectNodes("/Folder/Files");
foreach (XmlNode xn in xnList)
{
string a = xn["File"].Attributes["Id"].Value;
}
您無法直接獲取ID的屬性值。 您可以使用attribute屬性來獲取該特定屬性值。
XmlNodeList xnList = xml.SelectNodes("/Folder/Files");
foreach (XmlNode xn in xnList)
{
string a = xn.Attributes["Id"].Value; // Modify likewise
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.