.net 仅获取xml节点的文本
我有以下xml:.net 仅获取xml节点的文本,.net,xml,.net,Xml,我有以下xml: <root> <sub>maintext1 <subsub>subtext1</subsub> <subsub>subtext2</subsub> </sub> </root> 主文本1 潜台词1 潜台词2 我最初尝试了.Value,但这返回了sub中的所有内容,然后.ToS
<root>
<sub>maintext1
<subsub>subtext1</subsub>
<subsub>subtext2</subsub>
</sub>
</root>
主文本1
潜台词1
潜台词2
我最初尝试了.Value,但这返回了sub中的所有内容,然后.ToString也执行相同的操作。我搜索了一个解决方案,但everywhere都使用了xmlElement.InnerText,但我需要它用于xElement,因为xElement不可用。如何使用xElement的内部文本属性?
maintext1
创建一个文本节点,您可以执行以下操作:
var xml=@”
主文本1
潜台词1
潜台词2
";
var doc=XDocument.Parse(xml);
var txt=(IEnumerable)doc.xpatheevalue(“/root/sub/text()”;
var textNode=(XText)txt.First();
Console.WriteLine(textNode.Value);
请注意,需要导入以下名称空间才能编译此文件:
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Xml.Linq;
使用System.Xml.XPath;
通过在节点
方法的返回值上使用of type
Linq扩展,可以获取特定类型的元素
的所有节点
XElement.Nodes().OfType<XText>()
类型()的XElement.Nodes()
这个例子得到了你想要的价值,我认为:
var xml =
@"<root>
<sub>maintext1
<subsub>subtext1</subsub>
<subsub>subtext2</subsub>
</sub>
</root>";
var xel = XElement.Parse(xml);
var textNodes = xel.Element("sub").Nodes().OfType<XText>();
var mainText1 = textNodes.First().Value;
var-xml=
@"
主文本1
潜台词1
潜台词2
";
var xel=XElement.Parse(xml);
var textNodes=xel.Element(“sub”).Nodes().OfType();
var mainText1=textNodes.First().Value;
@sll和lazyberezovsky,为什么这个xml无效,为什么节点和元素之间不能有maintext1。
?它似乎是一个完全有效的xml。我可能错了。请提供参考。同意,此XML是有效的,并且解析良好。可能是重复的。请为确认我错了而道歉