2009-11-04 5 views
2

기존 ASP에서 큰 따옴표에 문제가 있습니다.xml 문자열의 따옴표 바꾸기

나는 문자열에 "따옴표를 교체합니다. 문자열이 XML을 포함하고 내가 태그 내부 (속성에 대한) 큰 따옴표를 대체하고 싶지 않다. 나는 하나의 이중 따옴표를 대체하기를 원한다면 그래서

이것에

<MyDinosaurDocument DocType="Brachysaurus">"Hello" said the little dinosaur</MyDinosaurDocument> 

: 따옴표,이에서 가서 내 문자열을 싶어

<MyDinosaurDocument DocType="Brachysaurus">'Hello' said the little dinosaur</MyDinosaurDocument> 

I했습니다 정규 표현식을 사용하여이 문제를 해결하려는 시도 그 (것)들 - 그러나 나는 슬프게 나의 깊이에서이다.

모든 도움을 주시면 대단히 감사하겠습니다.

답변

4

이 문제를 해결하기 위해 Regex를 사용하지 않을 것입니다. 여기에 그것을 할 것입니다 코드의 간단한 덩어리입니다 -

당신은 아마 어떤 시점에서 완료되면 다시 문자열을 읽을 필요가 없습니다 그래서 어쨌든 DOM으로 XML을로드 할 필요 물론
Dim dom : Set dom = CreateObject("MSXML2.DOMDocument.3.0") 

dom.LoadXml myXMLString 

Dim node 
For Each node in dom.SelectNodes("//*/text()") 
    node.nodeValue = Replace(node.nodeValue, """", "'") 
Next 

myXMLString = dom.xml 

아웃.

+0

Gerrie 및 Konrad, 답장을 보내 주셔서 감사합니다. 안토니는 내가 원하는 것을 정확히 수행한다. - pertect, thanks! – adrianos

+0

@adrianos : 글쎄, 그의 대답을 받아 들여라. (질문 옆에 체크 표시가 있고 그것을 upvote하는 것을 잊지 마세요) –

+0

아 죄송합니다 - 지금 소팅되기를 희망합니다 (여기 처음 방문 할 수 있습니까?) – adrianos

0

&quot;을 사용하면 XML에서 따옴표를 이스케이프 처리 할 수 ​​있습니다.

0

항상 비정규 데이터를 다룰 때 대답은 정규 표현식을 사용하지 않는 것입니다. 정말로,하지 마라. XML과 HTML은 항상 적절한 파서에 의해 파싱되어야하며, ASP는이를 쉽게 수행 할 수있는 방법을 제공합니다. 여기 정규 표현식을 사용하면 serious security liability입니다.

관련 문제