У меня есть XML-документ:.LINQ XML выберите узел
<users>
<user_tuple>
<userid>U01</userid>
<code>
<name>Tom Jones</name>
</code>
<rating>B</rating>
</user_tuple>
<user_tuple>
<userid>U02</userid>
<code>
<name>Mary Doe</name>
</code>
<rating>A</rating>
</user_tuple>
<user_tuple>
<userid>U03</userid>
<code>
<name>Dee Linquent</name>
</code>
<rating>D</rating>
</user_tuple>
Как выбрать только те (и все дочерние узлы/элементы), где элемент ("UserID") значение == "U01" и Element (. "имя") Значение == "Том Джонс" и т.д. то есть я хочу результаты:
<user_tuple>
<userid>U01</userid>
<code>
<name>Tom Jones</name>
</code>
<rating>B</rating>
</user_tuple>
Я использую C#
public void searchInfo(string rootNode, string Element1Name, string Element2Name, string Element1Val, string Element2Val){
////// Select rootNode and all descend nodes
var res = root.Elements("rootNode")
.Where(
x =>
(string)x.Element(Element1Name) == Element1Val&&
(string)x.Element(Element2Name) == Element2Val)
).ToList();
///////////
foreach (var node in res){
Debug.Writeline("Name {0} Value {1}", node.Name, node.Value)
}
Пример:
searchInfo ("RootNode", "USERID", "код", "U01", "Том Джонс")
res = <userid>U01</userid>
<code>
<name>Tom Jones</name>
</code>
<rating>B</rating>
and result:
userid U01
name Tom Jones
rating B
Возможно ли это?
Не могли бы вы уточнить, работаете ли вы в C# или Visual Basic? Linq доступен в обоих вариантах. На самом деле, на мой взгляд, несколько операций с XML проще в VB, чем на C#. – Katana314