2010-01-27 2 views
2

나는이 XML 문서가 있다고 가정 ...이 XML 문서에서 값을 찾을 수있는 적절한 XPath 쿼리는 무엇입니까?

<root> 
    <str name="My node's attribute">My string's value</str> 
</root> 

내가 요소 "이름"의 알려진 값을 기준으로 "STR"요소의 값을 얻으려면 이렇게 속성 나는 다음과 같은 XPath 쿼리를 사용합니다. ..

str[@name='My node's attribute'] 

하지만 그 때문에 작은 따옴표의 고전적인 ASP와 C#에서 적어도 나를 위해 작동하지 않습니다 XPath는 구문에 사용되는 작은 따옴표와 코스 충돌한다. 두 경우 모두 예외가 발생합니다.

XML 문서를 변경할 수 없다는 제한이있을 때 가능한 해결책은 무엇입니까?

답변

2

사용 "-

C#

string xpath = "str[@name=\"My node's attribute\"]"; 

VBScript를

Dim xpath : xpath = "str[@name=""My node's attribute""]" 
+0

또는 C#'string xpath = @ "str [@name =" "내 노드의 속성" "]" – Tomalak

+0

VBScript 버전이 유용했습니다. 고마워! C#은 나를 위해 아무것도 반환하지 않습니다. 안토니, C#이 잘 작동한다고 생각 하나? –

0

보십시오 : 대신 XPath는에

str[@name='My node''s attribute'] 
+1

D '문자를 삭제하는 것은 XPath가 이해하는 이스케이프 시퀀스가 ​​아닙니다. – AnthonyWJones

0
str[@name='My node&apos;s attribute'] 
+2

XmlDocument에 대해 실행되는 원시 XPath에서 XML 엔터티는 이해되지 않습니다. XSL에서는 XPath가 파싱되기 전에 이스케이프 처리되어 같은 문제가 발생합니다. – AnthonyWJones

관련 문제