Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在xmlnodes之间获取文本_C#_Asp.net_Xml_Vb.net - Fatal编程技术网

C# 在xmlnodes之间获取文本

C# 在xmlnodes之间获取文本,c#,asp.net,xml,vb.net,C#,Asp.net,Xml,Vb.net,如何在XML节点之间获取文本 <company> <data id="14" />{<data id="15" />DOCUMENT<data id="23" />pet<data id="24" />DOCUMENT<data id="25" /> </company> {DOCUMENTpetDOCUMENT 我需要id 23和25之间的数据(即pet文档) 我已经在xmldoc中加载了这个xml 请建

如何在XML节点之间获取文本

<company>
<data id="14" />{<data id="15" />DOCUMENT<data id="23" />pet<data id="24" />DOCUMENT<data id="25" />
</company>

{DOCUMENTpetDOCUMENT
我需要id 23和25之间的数据(即pet文档)

我已经在xmldoc中加载了这个xml

请建议

Dim tDoc as XmlDocument = new XmlDocument
Dim tNodes As XmlNodeList = Nothing

tDoc.Load(path_to_xml_file)   ' Or .LoadXml(xml_string)
tNodes = tDoc.SelectNodes("//data")

For Each tNode As XmlNode In tNodes
  Select Case tNode.Attributes("id").value
    Case 23, 24, 25
      ' Do your processing here
  End Select
Next
编辑 我误读了上面的XML。无论如何……我不知道如何获取特定节点ID之间的文本。但您可以使用
tDoc获取所有文本。选择SingleNode(//company”)。InnerText
您可以使用LINQ:

XDocument doc = XDocument.Parse(@"<company>...</company");

string result = string.Join(" ",
    doc.Root
       .Nodes()
       .SkipWhile(n => n.NodeType != XmlNodeType.Element ||
                       (int)((XElement)n).Attribute("id") != 23)
       .TakeWhile(n => n.NodeType != XmlNodeType.Element ||
                       (int)((XElement)n).Attribute("id") != 25)
       .OfType<XText>());

// result == "pet DOCUMENT"

XDocument doc=XDocument.Parse(@“…
XDocument doc=XDocument.Parse(@“…我需要这些节点之间的文本。如何获取文本?
XDocument doc = XDocument.Parse(@"<company>...</company");

string result = string.Join(" ",
    doc.Root
       .Nodes()
       .SkipWhile(n => n.NodeType != XmlNodeType.Element ||
                       (int)((XElement)n).Attribute("id") != 23)
       .TakeWhile(n => n.NodeType != XmlNodeType.Element ||
                       (int)((XElement)n).Attribute("id") != 25)
       .OfType<XText>());