在 windows phone 中搜索 xml 文档的元素 8
Search through the elements of an xml document in windows phone 8
我有一个 xml 文档,我正在尝试查询 link 数据到 windows phone 8 中的列表框,但我到目前为止都失败了。在线示例似乎没有带来我想要的东西。
以下是我目前所拥有的。在 xml。
这是我的 xml 文档(mydata.cml)
<resources>
<songCover>
<item>Images/song1</item>
<item>Images/song2</item>
.....
</songCover>
<songName>
<item>song1</item>
<item>song2</item>
.....
</songName>
<releaseYear>
<item>2015</item>
<item>2014</item>
.....
</releaseYear>
和 c#
XDocument doc=XDocument.Load("mydata.xml");
var data1=from Q in doc.Descedants("songCover") select new{Item=Q.Element("item").Value;
var data2=from Q in doc.Descedants("songName") select new{Item=Q.Element("item").Value;
var data3=from Q in doc.Descedants("releaseYear") select new{Item=Q.Element("item").Value;
foreach(var x in data1)
foreach(var y in data2)
foreach(var z in data3)
//create a list of songs with there data eg [songCover1,song1,2015],[songCover2,song2,2014] etc
这是我的xaml
<longlistselector>
......
<stackPanel>
<image height=”100” width=”100” source={Binding data1} horizontal-alignment=left/>
<textblock horizontal-alignment=right text={Binding data 2}/>
<texblock horizontal-alignment=right text={Binding data 3}/>
</stackPanel>
......
</longlistselector>
提前谢谢你。
这是您要找的吗?我假设(根据您在代码段中作为评论写的内容)封面、姓名和年份分别位于同一位置。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("path_here");
XmlNodeList covers = xmlDoc.SelectNodes("/songCover/item");
XmlNodeList names = xmlDoc.SelectNodes("/songName/item");
XmlNodeList years = xmlDoc.SelectNodes("/releaseYear/item");
for(int i=0;i<covers.Count; i++)
{
Console.WriteLine("[ "+ covers[i].Value +", " + names[i].Value + ", "+ years[i].Value + " ]");
}
XDocument xdoc = XDocument.Load("file_path_here");
List<xElement> covers = xDoc.XPathSelectElements("/songCover/item").ToList();
List<xElement> names = xDoc.XPathSelectElements("/songName/item").ToList();
List<xElement> years = xDoc.XPathSelectElements("/releaseYear/item").ToList();
for (int i = 0; i < covers.Count; i++)
{
Console.WriteLine("[ " + covers[i].Value + ", " + names[i].Value + ", " + years[i].Value + " ]");
}
假设每个集合(songCovers, songNames, and releaseYears)中的条目数量相同,并且它们通过索引对应,你可以这样做:
XDocument doc = XDocument.Load("mydata.xml");
var data1 = doc.Descedants("songCover")
.Elements("item")
.Select(o => o.Value)
.ToList();
var data2 = doc.Descedants("songName")
.Elements("item")
.Select(o => o.Value)
.ToList();
var data3 = doc.Descedants("releaseYear")
.Elements("item")
.Select(o => o.Value)
.ToList();
for(int i=0; i<data1.Count; i++)
{
var songCover = data1[i];
var songName = data2[i];
var releaseYear = data3[i];
//combine the 3 values above as needed
}
我有一个 xml 文档,我正在尝试查询 link 数据到 windows phone 8 中的列表框,但我到目前为止都失败了。在线示例似乎没有带来我想要的东西。 以下是我目前所拥有的。在 xml。 这是我的 xml 文档(mydata.cml)
<resources>
<songCover>
<item>Images/song1</item>
<item>Images/song2</item>
.....
</songCover>
<songName>
<item>song1</item>
<item>song2</item>
.....
</songName>
<releaseYear>
<item>2015</item>
<item>2014</item>
.....
</releaseYear>
和 c#
XDocument doc=XDocument.Load("mydata.xml");
var data1=from Q in doc.Descedants("songCover") select new{Item=Q.Element("item").Value;
var data2=from Q in doc.Descedants("songName") select new{Item=Q.Element("item").Value;
var data3=from Q in doc.Descedants("releaseYear") select new{Item=Q.Element("item").Value;
foreach(var x in data1)
foreach(var y in data2)
foreach(var z in data3)
//create a list of songs with there data eg [songCover1,song1,2015],[songCover2,song2,2014] etc
这是我的xaml
<longlistselector>
......
<stackPanel>
<image height=”100” width=”100” source={Binding data1} horizontal-alignment=left/>
<textblock horizontal-alignment=right text={Binding data 2}/>
<texblock horizontal-alignment=right text={Binding data 3}/>
</stackPanel>
......
</longlistselector>
提前谢谢你。
这是您要找的吗?我假设(根据您在代码段中作为评论写的内容)封面、姓名和年份分别位于同一位置。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("path_here");
XmlNodeList covers = xmlDoc.SelectNodes("/songCover/item");
XmlNodeList names = xmlDoc.SelectNodes("/songName/item");
XmlNodeList years = xmlDoc.SelectNodes("/releaseYear/item");
for(int i=0;i<covers.Count; i++)
{
Console.WriteLine("[ "+ covers[i].Value +", " + names[i].Value + ", "+ years[i].Value + " ]");
}
XDocument xdoc = XDocument.Load("file_path_here");
List<xElement> covers = xDoc.XPathSelectElements("/songCover/item").ToList();
List<xElement> names = xDoc.XPathSelectElements("/songName/item").ToList();
List<xElement> years = xDoc.XPathSelectElements("/releaseYear/item").ToList();
for (int i = 0; i < covers.Count; i++)
{
Console.WriteLine("[ " + covers[i].Value + ", " + names[i].Value + ", " + years[i].Value + " ]");
}
假设每个集合(songCovers, songNames, and releaseYears)中的条目数量相同,并且它们通过索引对应,你可以这样做:
XDocument doc = XDocument.Load("mydata.xml");
var data1 = doc.Descedants("songCover")
.Elements("item")
.Select(o => o.Value)
.ToList();
var data2 = doc.Descedants("songName")
.Elements("item")
.Select(o => o.Value)
.ToList();
var data3 = doc.Descedants("releaseYear")
.Elements("item")
.Select(o => o.Value)
.ToList();
for(int i=0; i<data1.Count; i++)
{
var songCover = data1[i];
var songName = data2[i];
var releaseYear = data3[i];
//combine the 3 values above as needed
}