<photos items="5">
<path>
http://www.test1.com
</path>
<path>
http://www.test2.com
</path>
<path>
http://www.test3.com
</path>
<path>
http://www.test4.com
</path>
<path>
http://www.test5.com
</path>
</photos>
我试图将所有path
个节点值放入列表中。
我试过这样的事情:
var nodes = (from n in xdoc.Descendants("photos")
select n.Elements("path")).ToList();
使用foreach
循环后,我想将路径节点的每个值存储到列表中......但我不知道怎么做?还有其他更简单的解决方案吗?
答案 0 :(得分:2)
这就是你想要的:
const string xml = @"
<photos items=""5"">
<path>
http://www.test1.com
</path>
<path>
http://www.test2.com
</path>
<path>
http://www.test3.com
</path>
<path>
http://www.test4.com
</path>
<path>
http://www.test5.com
</path>
</photos>";
var xdoc = XElement.Parse(xml);
var paths = xdoc.Elements("path").Select(p => p.Value);
如果xml来自具有上述架构的文件,您可以Load
:
xdoc = XElement.Load("photos.xml");
var paths = xdoc.Elements("path").Select(p => p.Value).ToList();
答案 1 :(得分:0)
这似乎有效:
foreach( string p in paths)
{
/// get the urls in some list
}
然后
// Plugin
(function($){
$.fn.selectify = function(){
return this.click(function(event){
event.preventDefault();
var $this = $(this);
var target = $this.attr('data-target');
var val = $this.attr('data-selectify');
$(target).val(val);
});
};
// auto init for all elements which has 'data-selectify' attribute
$(function(){
$('[data-selectify]').selectify();
});
})(jQuery);
答案 2 :(得分:0)
您可以尝试以下操作:
XDocument xdoc = XDocument.Load("full path to xml file");
List<string> values = xdoc.Root.Elements("path").Select(p => p.Value.Trim()).ToList();