如何从XDocument获取子节点的值
我需要使用linq从XDocument获取子节点的值
1234 123 Main street AL
我试过这个: xDocTest.Root.Elements("Cust").Elements("ACTNumber")
如果我尝试使用Address而不是ACTNumber,那么它可以工作。 但它没有给出子节点值。
如果只有一个Cust
元素和一个ACTNumber
元素,那么很容易:
string actNumber = doc.Root.Element("Cust").Element("ACTNumber").Value;
或者把它作为一个long
:
long actNumber = (long) doc.Root.Element("Cust").Element("ACTNumber");
用这个:
xDocTest.Root.Element("Cust").Element("Adress").Element("City").Value
如果你使用Elements(注意复数)它给你一个IEnumerable,这将使用如下:
XML
Hello World!
C#
foreach(var childElement in Root.Elements("Child")) Console.WriteLine(childElement.Value);
或者举个例子:
foreach(var child in xdoc.Root.Element("Cust").Element("Address").Elements()) Console.WriteLine(string.Format("{0} : {1}", child.Name, child.Value);
如果您有多个同名元素,我不确定Element的行为方式。 因此,您可能希望在所有出现时使用Elements和Inerate。
在Linq如果有多个客户……
var result = from cust in xdoc.Root.Elements("Cust") where cust.Elements("ACTNumber").Any() // This is to make sure there // is an element called ACTNumber // otherwise .Value would create // Nullrefexception. select child.Element("ACTNumber").Value;
- 为什么en-dash( – )会触发非法的XML字符错误(C#/ SSMS)?
- 如果sqlexpress位于安装了SQLSERVER2008的同一台机器上,则SmoApplication.EnumAvailableSqlServers()不会列出默认实例
- 在visual studio中,一些代码行在调试时具有浅灰色背景
- 如何检测项目文件夹中是否存在文件?
- C# – 将列表转储到下拉列表
- XMLWriter:带有标记名称和字符串的WriteStartElement,用于指示标记名称
- Path.Combine()在驱动器号后面不添加目录分隔符
- WebAPI OData $跳过自定义IQueryable double应用
- Wson中的JsonConvert.DeserializeObject和“d”包装器