我有一个XML文件,我喜欢解析并获取字符串类型数组中的值。我知道有XML系列化命名空间和其他东西。但我试图实现的是获取字符串数组中的值。可以使用Foreach循环或for循环获得。
例如,这是我的 XML 文件:
<?xml version="1.0" encoding="utf-8" ?>
<channel>
<title>Social Media</title>
<item>
<title>Facebook</title>
<link>http://www.facebook.com/</link>
</item>
<item>
<title>Twitter</title>
<link>http://www.twitter.com/</link>
</item>
<item>
<title>Google+</title>
<link>http://plus.google.com/</link>
</item>
</channel>
现在,我将两个字符串类型数组作为变量放入 C# 文件中。
例如:
public string[] WebsiteName;
public string[] Urls;
现在,我想将 WebsiteName 的所有值放入 WebsiteName 数组中,将网站链接放入 Urls 数组中。
有什么办法吗?如果是,请给我看。这将是非常有帮助的。
下面是
使用 LINQ 获取网站名称和链接的示例:
var xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
<channel>
<title>Social Media</title>
<item>
<title>Facebook</title>
<link>http://www.facebook.com/</link>
</item>
<item>
<title>Twitter</title>
<link>http://www.twitter.com/</link>
</item>
<item>
<title>Google+</title>
<link>http://plus.google.com/</link>
</item>
</channel>";
var doc = XDocument.Parse(xml);
WebsiteName = doc.Descendants("title").Select(o => o.Value).ToArray();
Urls = doc.Descendants("link").Select(o => o.Value).ToArray();
-
XDocument.Parse(xml)
:从字符串创建XDocument。如果您希望源是文件而不是字符串,则可以使用XDocument.Load("path_to_the_xml_file")
. -
doc.Descendants("title")
:将获取所有名为"title"的标签,然后 -
.Select(o => o.Value)
:将获取开始和结束标记之间的字符串,即值
var doc = XDocument.Parse(xml);
var WebsiteName = doc.Descendants("title").Select(o => o.Value).ToArray();
ListBox.ItemsSource = WebsiteName;
你会得到写在列表框中的内容。