只是想從特定屬性的 XML 檔案中獲取值以存盤在陣列中。到目前為止,我這樣做了,但沒有成功。
C# 代碼
string[] name;
int n = 0;
using (XmlTextReader AReader = new XmlTextReader(Environment.CurrentDirectory "\\Account.xml"))
{
while (AReader.Read())
{
AReader.ReadToFollowing("Account");
AReader.MoveToContent();
if (AReader.NodeType == XmlNodeType.Element && AReader.Name == "Account")
{
name[n] = AReader.GetAttribute("Name");
n ;
}
}
}
XML 檔案
<?xml version="1.0"?>
<ArrayOfAccount>
<Account Name="John" Sex="Male" Age="28" />
<Account Name="Ram" Sex="Male" Age="22" />
</ArrayOfAccount>
我需要的輸出是
name[0]="John"
name[1]="Ram"
等等...
我認為這足以得到一個想法。
uj5u.com熱心網友回復:
你想要一個List<T>,而不是一個陣列。陣列有一個固定的大小,必須事先知道,而串列可以增長,這使得它們非常適合這種應用程式。
所以,首先,創建一個新串列:
var name = new List<string>();
// no need for n, the list keeps track of its count
然后,向其中添加元素:
if (AReader.NodeType == XmlNodeType.Element && AReader.Name == "Account")
{
name.Add(AReader.GetAttribute("Name"));
}
就是這樣。
uj5u.com熱心網友回復:
您可以使用 linq。這樣就無需擔心大小,您將獲得 string[] 陣列。
完整代碼
string myXML = @"<?xml version=""1.0""?>
<ArrayOfAccount>
<Account Name=""John"" Sex =""Male"" Age=""28""/>
<Account Name=""Ram"" Sex=""Male"" Age=""22""/>
</ArrayOfAccount>
";
XDocument xdoc = new XDocument();
xdoc = XDocument.Parse(myXML);
IEnumerable<string> names = (from account in
xdoc.Descendants("Account")
select account.Attribute("Name").Value).ToArray();
在你的情況下,它是檔案所以
IEnumerable<string> names = (from account in
XDocument.Load(@"yourPath")
.Descendants("Account")
select customers.Attribute("Name").Value).ToArray();

uj5u.com熱心網友回復:
這是做你想做的事情的簡單方法:
string[] name =
XDocument
.Load(Environment.CurrentDirectory "\\Account.xml")
.Root
.Elements("Account")
.Select(e => (string)e.Attribute("Name"))
.ToArray();
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/512773.html
標籤:C#数组xml
上一篇:將XSLT屬性轉換為元素
