2012-07-25 2 views
0

XML 문서가 있고 두 개의 자식 노드 값을 기반으로 노드 값을 선택하는 XPath식이 필요합니다. XML 파일 구조는 다음과 같습니다두 자식 노드 값을 기반으로 XML 파일에서 값 가져 오기

<catalog> 
<book id="123"> 
<title>Book123</title> 
<author>Author123</author> 
<genre>Genre123</genre> 
</book> 
. 
. 
. 
</catalog> 

내가 제목과 저자를 기반으로 책을 선택합니다. 이 표현식을 사용했지만이 표현식에 잘못된 토큰이 있다는 예외를 보여줍니다. 나는 이것을 해결하는 방법을 찾아 내지 못했습니다. 표현식은 다음과 같습니다.

"book[title='" + txtBookTitle.Text + "' AND author='" + txtBookAuthor.Text + "']" 

몸이 어떤 점에서 도움이 되나요?

+0

를 사용할 수 있습니다, 당신은 그것으로 무엇을 기대 생성 된 표현이다? –

+0

XPath를 사용 하시겠습니까? 대신 XML에 LINQ를 사용할 수 있습니까? 그건 아주 간단하고 이름에 따옴표가있는 저자에 대해 걱정할 필요가 없게 될 것입니다. –

+0

@AustinSalonen : 제목과 저자가 표현에 언급 된 책의 가치를 얻어야합니다. 사실, 루트 노드에서 호출하는 SelectNodes() 메서드를 사용했습니다. 내 경우, 루트 노드는 카탈로그입니다. 그래서, 그것을 기반으로 노드를 추출하기 위해 그것을 만들 필요가 자식 노드 값. –

답변

2

당신이 디버깅 할 때 당신은

//book[title[text()='Book123'] and author[text()='Author123']] 
+0

감사합니다. 훌륭한 직장을 꾸 렸습니다. –

0

은 당신의 XPath로

//book[title='Book123' and author='Author123'] 

을보십시오. .Trim()을 사용하여 입력에 공간을 잘라내 었는지 확인할 가치가 있습니다.

TextBox1.Text.Trim() 
+0

제안대로 , 나는 그것을 사용했다. 예외는 없지만이 메시지가 표시됩니다. 열거 결과가 없습니다. –

+0

나는 여기서 XML/XPath 콤보를 시도했다 : http://www.mizar.dk/XPath/Default.aspx 그리고 올바른 요소를 강조했다. 아마도 XML에 케이스 문제 또는 오타가있을 수 있습니까? –

관련 문제