Select 兄弟节点取值基于多个兄弟条件
Select sibling node value based on multiple sibling conditions
我想 select 具有 Type=IMAGE 和 Key=XS 的节点的 URL 值 (5.jpg)
ps:图像节点的顺序是随机的,所以我不能只 select 第 n 个节点。
我试过但失败了:
Dim root As XmlNode = objXML.DocumentElement
Dim nodeList As XmlNodeList = root.SelectNodes("/Products/Product")
nodeList(i).SelectSingleNode("//URL[../Type='IMAGE' and ../Key='XS']").InnerText
和
nodeList(i).SelectSingleNode("/Images/[Type=IMAGE] and /Images/[Key=XS]").ChildNodes(0).SelectSingleNode("URL").InnerText
<Products>
<Product>
<Id>9200000093797005</Id>
<Images>
<Type>IMAGE</Type>
<Key>XS</Key>
<Url>5.jpg</Url>
</Images>
<Images>
<Type>IMAGE</Type>
<Key>S</Key>
<Url>1.jpg</Url>
</Images>
<Images>
</Product>
</Products>
已在此处查看:
- ASP.NET C# Search XML Node on multiple criteria
- Retrieving XmlNode SelectSingleNode Parents Node
您的尝试几乎是正确的。我认为 XmlNodeList
的使用是导致您出现问题的原因。如果您改用 XmlNode
和 SelectSingleNode
,那么您会更快得到答案。
Dim root As XmlNode = objXml.DocumentElement
Dim node As XmlNode = root.SelectSingleNode("//Products/Product/Images[Type='IMAGE' and Key='XS']/Url")
Dim url As String = node.InnerText
我想 select 具有 Type=IMAGE 和 Key=XS 的节点的 URL 值 (5.jpg) ps:图像节点的顺序是随机的,所以我不能只 select 第 n 个节点。
我试过但失败了:
Dim root As XmlNode = objXML.DocumentElement
Dim nodeList As XmlNodeList = root.SelectNodes("/Products/Product")
nodeList(i).SelectSingleNode("//URL[../Type='IMAGE' and ../Key='XS']").InnerText
和
nodeList(i).SelectSingleNode("/Images/[Type=IMAGE] and /Images/[Key=XS]").ChildNodes(0).SelectSingleNode("URL").InnerText
<Products>
<Product>
<Id>9200000093797005</Id>
<Images>
<Type>IMAGE</Type>
<Key>XS</Key>
<Url>5.jpg</Url>
</Images>
<Images>
<Type>IMAGE</Type>
<Key>S</Key>
<Url>1.jpg</Url>
</Images>
<Images>
</Product>
</Products>
已在此处查看:
- ASP.NET C# Search XML Node on multiple criteria
- Retrieving XmlNode SelectSingleNode Parents Node
您的尝试几乎是正确的。我认为 XmlNodeList
的使用是导致您出现问题的原因。如果您改用 XmlNode
和 SelectSingleNode
,那么您会更快得到答案。
Dim root As XmlNode = objXml.DocumentElement
Dim node As XmlNode = root.SelectSingleNode("//Products/Product/Images[Type='IMAGE' and Key='XS']/Url")
Dim url As String = node.InnerText