안정적으로이 상황을 처리하기 위해 기본적으로 두 가지 방법이 있습니다.
첫 번째 방법은 당신이하는 XPath 변수에 사용할 값을 VariableContext
을 정의하고 배치하는 것입니다. 그럼 당신은 expre을 사용할 수 있습니다 같은 시온 :
//somePath/FieldData[@Location = $user]/@Value
나는 그 방법을 설명합니다 in this post. VariableContext
클래스를 만드는 것이 필요합니다. .NET에 적합한 것은 없지만 대부분의 경우 그대로 제공해야합니다.
다른 옵션은 Linq-to-XML을 사용하는 것입니다. 당신이 경로를 이동하는 경우, 당신은 Linq에 대신 XPath를 사용하여 노드를 조회 할 수 있으며, 구분 기호는이 방법으로 문제가되지 않습니다 :
// here the doc variable is an XElement or XDocument
var value = (from fd in doc.Descendants("FieldData")
where (string)fd.Attribute("Location") == sUser
select fd.Attribute("Value")).FirstOrDefault();
또는 기타의 LINQ 구문
:
var value = doc.Descendants("FieldData")
.Where(fd => (string)fd.Attribute("Location") == sUser)
.Select(fd => fd.Attribute("Value"))
.FirstOrDefault();
사용'정상화-space' – Avijit
을 나는 그것이 공간 – nnm
'문자열 SUSER = "U'1"함께 할 수 없다 확신; XmlNode xnUser = xmlDocument.SelectSingleNode ("tm : TM/tm : 사용자/ID : \" "+ sUser +"\ "]", TMNamespaceManager), ' – Avijit