/ / जटिल Xpath में Linq को XML - xml, linq, linq-to-xml

जटिल एक्सपैथ लिंक से एक्सएमएल - एक्सएमएल, लिनक, लिनक-टू-एक्सएमएल

मेरा इनपुट एक्सएमएल:

....
<node Attribute1 = "GUID1">
<childnode1 AttributeChildnode= var1> </childnode>
<childnode2 AttributeChildnode= var2> </childnode>
</node>
<node Attribute1 = "GUID2">
<childnode3 AttributeChildnode= var3> </childnode>
<childnode4 AttributeChildnode= var4> </childnode>
</node>
....

मेरा XPath कोड ऐसा दिखता है

mynodelist = xmldoc.SelectNodes(".//node[@Attribute1 ="" & varString1 &""]/nodechild[@AttributeChildnode1 = ""& varString2 &""]")

मेरे पास कोई आइडिया नहीं है कि कैसे लिनक को XML कोड के समान परिणाम प्राप्त करने के लिए देखना चाहिए कृपया क्या कोई मेरी मदद कर सकता है

उत्तर:

जवाब के लिए 0 № 1

आप अभी भी XPath का उपयोग कर सकते हैं XDocument और LINQ to XML;

var doc = XDocument.Load(filePath);
var myNodeList = doc.XPathSelectElements(".//node[@Attribute1 ="" & varString1 &""]/nodechild[@AttributeChildnode1 = ""& varString2 &""]");

XPathSelectElements पर विस्तार विधि के रूप में घोषित किया गया है XNodeभीतर, System.Xml.XPath नाम स्थान।

मानक Linq to XML वर्जन</ Strong>

इनपुट XML:

<root>
<node Attribute1="GUID1">
<childnode AttributeChildNode1="var1" AttributeChildNode2="result1"></childnode>
<childnode AttributeChildNode1="var2" AttributeChildNode2="result2"></childnode>
</node>
<node Attribute1="GUID2">
<childnode AttributeChildNode1="var3" AttributeChildNode2="result3"></childnode>
<childnode AttributeChildNode1="var4" AttributeChildNode2="result4"></childnode>
</node>
</root>

प्रश्न:

string guid = "GUID1";
string var = "var1";

var elements = XElement.Load("Input.txt");

var value = (from node in elements.Elements("node")
where (string)node.Attribute("Attribute1") == "GUID1"
from childNode in node.Elements()
where (string)childNode.Attribute("AttributeChildNode1") == "var1"
select (string)childNode.Attribute("AttributeChildNode2")).FirstOrDefault();

रिटर्न result1 - result4, इस पर निर्भर करते हुए guid तथा var चर मान।