Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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# 使用asp.net Vb.net从XML获取数据_C#_Asp.net_Xml_Vb.net - Fatal编程技术网

C# 使用asp.net Vb.net从XML获取数据

C# 使用asp.net Vb.net从XML获取数据,c#,asp.net,xml,vb.net,C#,Asp.net,Xml,Vb.net,我有这样一个XML文档: <?xml version='1.0' encoding='UTF-8'?> <GateDocument> <!-- The document's features--> <GateDocumentFeatures> <Feature> <Name className="java.lang.String">MimeType</Name> <Value className="

我有这样一个XML文档:

<?xml version='1.0' encoding='UTF-8'?>
<GateDocument>
<!-- The document's features-->
<GateDocumentFeatures>
<Feature>
  <Name className="java.lang.String">MimeType</Name>
  <Value className="java.lang.String">text/html</Value>
</Feature>
</GateDocumentFeatures>

<!-- The document content area with serialized nodes -->

<TextWithNodes><Node id="0" />astralis<Node id="8" /> <Node id="9" />ltd<Node id="12" />
<Node id="14" />{<Node id="15" />DOCUMENT<Node id="23" />}<Node id="24" /> <Node id="25" />{<Node id="26" />TYPE<Node id="30" />}<Node id="31" />EX-<Node id="34" />10<Node id="36" />.<Node id="37" />12<Node id="39" /> <Node id="40" />{<Node id="41" />SEQUENCE<Node id="49" />}<Node id="50" />3<Node id="51" /> <Node id="52" />{<Node id="53" />FILENAME<Node id="61" />}<Node id="62" />e<Node id="63" />300201<Node id="69" />_<Node id="70" />ex<Node id="72" />10<Node id="74" />-<Node id="75" />12<Node id="77" />.<Node id="78" />txt<Node id="81" /> <Node id="82" />{<Node id="83" />DESCRIPTION<Node id="94" />}<Node id="95" />
</TextWithNodes>

<Annotations>
.
.
.
.
.
</Annotations>

<Annotations Name="Original markups">
.
.
.
.
</Annotations>

</GateDocument>
可能我需要修改以下代码:

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

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

// result == "pet DOCUMENT"

XDocument doc=XDocument.Parse(@“…我使用的范围是15到30

  XDocument xml = XDocument.Load("file.xml");
  var firstElement = xml.Descendants().Where(x => x.Name == "Node" && x.Attribute("id").Value=="15").FirstOrDefault();
  var lastElement = xml.Descendants().Where(x => x.Name == "Node" && x.Attribute("id").Value == "30").FirstOrDefault();
  var response = firstElement.NodesAfterSelf().Where(x => lastElement.NodesBeforeSelf().Contains(x));

这将返回元素。您可以使用ToString()获取内容。我想您要说的是如何使用
XDocument.Parse

因为从外观上看,XML是在一个外部文件中,所以最好使用它

XDocument doc = XDocument.Load("myXmlFile.xml");

然后继续使用LINQ to XML作为示例。如果我误解了,请道歉。

您没有使用LINQ to XML的原因是什么?我想使用它。实际上,最后一个解决方案是LINQ to XML,但需要修改。请建议使用LINQ to XML解决方案。我更喜欢这样。@linkerro这只是一个范围。您可以使用任何其他数字。Thanks.急需帮助我是否需要使用response.tostring来获取节点元素之间的内容?查询将返回位于id为15和30(不包括)的节点之间的所有节点。如果需要确切的字符串内容,请添加一个Select(x=>x.tostring())连接字符串。@Inkero:我尝试了以下方法:Dim response=firstElement.NodesAfterSelf().Where(函数(x)lastElement.NodesBeforeSelf().Contains(x)).Select(x>=x.ToString),但给出了错误。Dim response=firstElement.NodesAfterSelf().Where(函数(x)lastElement.NodesBeforeSelf().Contains(x)).Select(函数(x)x、 ToString)
XDocument doc = XDocument.Load("myXmlFile.xml");