我正在开发一个.Net应用程序,我需要根据其兄弟节点的值来从XML文件中获取值.Eg:在XML中我想要获取Pages,Price&中的值。 ...
您可以搜索所有父元素,而不是搜索兄弟元素 使用条件子句过滤那些具有特定值的人 <br> </code><br> 儿童元素。然后,对于所有匹配,返回三个所需子元素的值。<br> </p><br> <P><br> 这最容易使用<br> <a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview" rel="nofollow noreferrer"><br> LINQ to XML<br> </A><br> :<br> </p><br> <pre><br> <code><br> var root = XElement.Parse(xmlString);</p> <p>var title = “Hansel and Gretel”;</p> <p>var query = root<br> .Elements(“Book”)<br> .Where(e => (string)e.Element(“Title”) == title)<br> .Select(e => new<br> {<br> Pages = (int)e.Element(“Pages”),<br> Price = (decimal)e.Element(“Price”),<br> Author = (string)e.Element(“Author”),<br> });</p> <p>var results = query.ToList();</p> <pre><code></code> </code></pre><p> </pre><br> <P><br> 但是,如果您更喜欢使用<br> <a href =“<a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-query-linq-to-xml-using-xpath"rel">https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-query-linq-to-xml-using-xpath"rel</a> =” nofollow noreferrer“><br> XPath的<br> </A><br> 查询,你可以这样做:<br> </p><br> <pre><br> <code><br> var query = root<br> .XPathSelectElements(string.Format(“/Book[Title=’{0}’]”, title))<br> .Select(e => new<br> {<br> Pages = (int)e.Element(“Pages”),<br> Price = (decimal)e.Element(“Price”),<br> Author = (string)e.Element(“Author”),<br> });</p> <pre><code></code> </code></pre><p> </pre><br> <P><br> 演示小提琴<br> <a href="https://dotnetfiddle.net/3QhNwb" rel="nofollow noreferrer"><br> 这里<br> </A><br> 。<br> </p><br></DIV> </p>
<br> </code><br> 儿童元素。然后,对于所有匹配,返回三个所需子元素的值。<br> </p><br> <P><br> 这最容易使用<br> <a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/linq-to-xml-overview" rel="nofollow noreferrer"><br> LINQ to XML<br> </A><br> :<br> </p><br> <pre><br> <code><br> var root = XElement.Parse(xmlString);</p> <p>var title = “Hansel and Gretel”;</p> <p>var query = root<br> .Elements(“Book”)<br> .Where(e => (string)e.Element(“Title”) == title)<br> .Select(e => new<br> {<br> Pages = (int)e.Element(“Pages”),<br> Price = (decimal)e.Element(“Price”),<br> Author = (string)e.Element(“Author”),<br> });</p> <p>var results = query.ToList();</p> <pre><code></code> </code></pre><p> </pre><br> <P><br> 但是,如果您更喜欢使用<br> <a href =“<a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-query-linq-to-xml-using-xpath"rel">https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-query-linq-to-xml-using-xpath"rel</a> =” nofollow noreferrer“><br> XPath的<br> </A><br> 查询,你可以这样做:<br> </p><br> <pre><br> <code><br> var query = root<br> .XPathSelectElements(string.Format(“/Book[Title=’{0}’]”, title))<br> .Select(e => new<br> {<br> Pages = (int)e.Element(“Pages”),<br> Price = (decimal)e.Element(“Price”),<br> Author = (string)e.Element(“Author”),<br> });</p> <pre><code></code> </code></pre><p> </pre><br> <P><br> 演示小提琴<br> <a href="https://dotnetfiddle.net/3QhNwb" rel="nofollow noreferrer"><br> 这里<br> </A><br> 。<br> </p><br></DIV> </p>