У меня есть приведенный ниже xml-файл, и мне нужно использовать xpath, чтобы получить значение «количество» на основе «белья».
<Doc>
<Documents>
<Document1>
<linenumber>800</linenumber>
<amount>100.00</amount>
<name>fee1</name>
</Document1>
<Document2>
<linenumber>801</linenumber>
<amount>200.00</amount>
<name>fee2</name>
</Document2>
<Document3>
<linenumber>802</linenumber>
<amount>300.00</amount>
<name>fee3</name>
</Document3>
<Document4>
<linenumber>803</linenumber>
<amount>400.00</amount>
<name>fee4</name>
</Document4>
</Documents>
</Doc>
Я попробовал xpath, указанный в приведенной ниже функции 'GetDocumentField', но вызов функции GetDocumentField (801, "amount") не вернул никакого значения.Я не могу использовать LINQ, так как он основан на .Net Framework 2.0.Кто-нибудь может подсказать, как написать этот запрос xpath?Спасибо!
Private Function GetDocumentField(ByVal line As Integer, ByVal field As String) As String
Return GetValueFromXPath(String.Format("//linenumber[.='{0}']/parent::node()/{1}", line, field)))
End Function
Private Function GetValueFromXPath(ByVal xpath As String) As String
Dim node As XmlNode
node = InputXml.SelectSingleNode(xpath)
Return GetValueFromNode(node)
End Function
Private Function GetValueFromNode(ByVal node As XmlNode) As String
If node Is Nothing Then
Return String.Empty
End If
If node.InnerText Is Nothing Then
Return String.Empty
End If
Return node.InnerText
End Function