2010-12-07 6 views
0

나는 웹 서비스 응답을 조롱하고 싶다. 응답은 XML이며 간단한 따옴표와 큰 따옴표를 모두 포함합니다.Ruby에서 문자열의 모든 따옴표와 큰 따옴표를 무시하는 방법은 무엇입니까?

응답은, 그래서 여기 내 솔루션 꽤 크고된다

  • 가 작게 만들 응답 트림 예를

  • 에 대한

  • 백 슬래시를 예를 들어 간단한 따옴표를 간단한 따옴표를 백 슬래시

  • 파일에 응답을 추가하고 구문 분석

하지만 큰 반응을 테스트하고 파일로 리소스 테스트 폴더를 만들지는 않습니다. 그리고 당신이 상상할 수있는 것처럼, 모든 것을 백 슬래시링하는 것은 길고 지루합니다.

나는 트리플 쿼트를 시도했지만 물론 작동하지 않습니다.

어떻게 할 수 있습니까?

답변

4

Ruby here documents을 사용할 수 있습니다.

xml = <<DOC 
<xml> 
<food attribute="soup">'eel'</food> 
</xml> 
DOC 
+0

문서가 일어난 경우 파이프의 역 따옴표를 사용할 수 있습니다 예를 들어 오이의 테이블을 사용하는 경우 최종 구분 기호 그렇게 일을 시작 %Q 운영자

a = :jed %Q| "these double quotes are ignored" for as long as you can type says #{a} | 

를 사용 라인에 "DOC"를 포함하려면이 작업이 중단됩니다. 허락되지는 않았지만, 그런 일이 발생할 가능성을 줄이기 위해'xml = << ______ MY_DOCUMENT_ENDS_HERE ____'와 같이 더 긴 var을 사용하는 것이 가장 좋습니다. –

0
→ irb 
ruby-1.9.2-p0 > str = <<-STR 
ruby-1.9.2-p0"> ' single quote 
ruby-1.9.2-p0"> " double quote 
ruby-1.9.2-p0"> STR 
=> "' single quote\n" double quote\n" 
ruby-1.9.2-p0 > 
2

은 당신이 대신

+0

나는 당신의 대답을 좋아하지만 나는 Jonas에게 갈 것이라고 생각합니다. 나는 사람들이 내 코드를 읽는 것이 내가 말하는 문서를 이해한다는 점을 좋아한다! 어쨌든 고마워, 내가 다른 곳에서 사용할거야! – Pasta

+0

완전히 스타일의 문제, 두 방법 중 하나는 문자열로 루비에 의해 해결됩니다. 행운을 빕니다! –

+0

문자열에 "|" 문자,이 실패합니다. –

관련 문제