linq to xml如何检索节点名 [英] linq to xml how to retrieve nodename
本文介绍了linq to xml如何检索节点名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好.
我有一个这样构造的xml文件:
hello.
I have a xml file structured this way:
<first>
<second>
<third1>lol</third1>
<third2>lolw</third2>
</second></first>
我需要随机选择一个节点名称,例如,我需要可视化"third2".我尝试过类似的
I need to select randomly a node name for example i need to visualize "third2". I tried something like
String xdoc = XDocument.Load(url).Descendants("first").Descendants("second").DescendantNodes.OrderBy(t => Guid.NewGuid()).First().ToString();
,但ot无效.我该怎么做?在此先感谢!
but ot does not work. How do i do it? Thanks in advance!
推荐答案
问候;
如果我误解了你的问题,请原谅我.但是,如果您尝试使用LINQ to XML来随机选择XML文档中的子XML节点或XElement,则可以使用
Greetings;
Forgive me if I misunderstood your question. But if you''re trying to use LINQ to XML to randomly select a child XML Node or XElement in an XML Document, I was able to piece the following small C# program using LINQPad Ver. 4.31;
void Main()
{
//
// Create an XML Document using XElement...
//
XElement sampleElements = XElement.Parse(
@"<first>
<second>
<third1>lol</third1>
<third2>lolw</third2>
<third3>lolx</third3>
<third4>loly</third4>
</second>
</first>");
//
// Instantiate a Random Number Generator
//
Random randomInts = new Random();
if (randomInts == null)
{
return;
}
//
// Using the Random Number Generator, create a randomized "third"
// element name...
//
string thirdSought =
string.Format("third{0}", randomInts.Next(1, 4).ToString());
//
// Get an IEnumerable<xelement> that contains the matching third
// element name...
//
var randomThird = from third in sampleElements.Descendants(thirdSought)
select third;
// randomThird.Dump();
foreach (XElement third in randomThird)
{
string trace =
string.Format("Name: {0} Value: {1}", third.Name, third.Value);
Console.WriteLine(trace);
}
return;
}
执行时,以上C#代码将产生以下输出:
When executed, the above C# code produces the following output:
Name: third1 Value: lol
这是寻找所需的随机XML元素的方法吗?
我希望这会有所帮助和有趣.
最好的问候...
Is this the approach to finding a random XML Element you were looking for?
I hope this was of help and interest.
Best Regards...
Dim xdoc As XDocument = XDocument.Parse(
"<first> <second> <third1>lol</third1> <third2>lolw</third2> </second> </first>"
)
Dim elList As IEnumerable(Of XElement) = From el In xdoc...<third1> Select el
Dim str As String = elList.FirstOrDefault.Value
Dim name As String = elList.FirstOrDefault.Name.ToString
</third1>
C#代码
c# code
IEnumerable<XElement> elList = from el in xdoc.Descendants("third1") select el;
string strValue = elList.FirstOrDefault().Value;
string strName = elList.FirstOrDefault().Name.ToString();
这篇关于linq to xml如何检索节点名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文