2009-05-06 5 views
0

타사 웹 사이트에 HTML 양식을 제출해야하며 숨겨진 필드 중 하나는 XML 문자열입니다. XML은 제 3 자에게 전송되기 전에 탈출해야합니다.HTML 입력 필드에 할당 할 때 자동 HTML 인코딩을 중지하는 방법 VB.NET

그러나 양식 필드에 일반 XML을 추가하면 세미 에피소드가 만들어집니다. 그래서 HTMLEncode를 사용하면 XML의 일부가 이중 이스 케이 핑됩니다. .NET에서 자동으로 이스케이프 처리되는 것을 방지하려면 어떻게합니까?

숨겨진 필드를 통해 이스케이프 처리 된 XML을 보내는 방법이 더 좋습니다.

XML

<systemCode>APP</systemCode> 

기본 할당 내가 무슨 일이 일어나고 있는지 볼 수 있습니다

&amp;lt;systemCode&amp;gt;APP&amp;lt;/systemCode&amp;gt; 

뿐만 아니라 인코딩을 HTML 숨겨진 입력 필드

&lt;systemCode>APP&lt;/systemCode> 

에 -하지만 난하지 않습니다 그것을 방지하는 방법을 알아?

답변

0

결국 나는 문자 그대로 다음 XML 문자열 전에 문자 텍스트 필드에 HTML 양식 변수를 할당 HTMLEncoding 사용했다. 아래처럼 약간 :

portalReq.Text = "<input type=""hidden"" name=""portalReq"" value='" & HTMLENCODE(RequestXML) & "' />" 

우아하지 않지만 문제를 피할 수 있습니다.

4

HTMLEncode를 사용하지 마십시오 ! 그것을 사용하십시오 혼자! 같은

뭔가 :

'Setting value: 
hdnField.Value = Server.HtmlEncode("<systemCode>APP</systemCode>") 
'Outputs: &amp;lt;systemCode&amp;gt;APP&amp;lt;/systemCode&amp;gt; 

'Retrieving encoded value: 
Dim escaped as string = Request.Form("hdnField") 
'Retrieves: &lt;systemCode&gt;APP&lt;/systemCode&gt; 

'Retrieving decoded value: 
Dim myValue As String = Server.HtmlDecode(Request.Form("hdnField")) 
'Retrieves: "<systemCode>APP</systemCode>" 
+1

이 느낌은 한 번 더 ....하지만 이번에 말! ;) –

+1

한 번 더 투표하면 ... 이번에는 기분으로!: P – Cerebrus

+0

안녕하세요, 나는 HTMLEncode뿐만 아니라 다른 것을 사용하고 있지 않습니다. 혼자 사용하고 있습니다. 그러나 제가 말했듯이 자동으로 진행되는 것은 XML의 <를 인코딩하는 것입니다 : portalReq.Value = myXML - 내가 멈추고 싶어하는 자동 물건이야! –

0

HTML 출력에 대해 걱정할 필요가 없습니다. 양식에서 제출 된 데이터에 대해서만 걱정하십시오. HTML이 완전히 이스케이프 처리되었거나 부분적으로 이스케이프 처리되었는지 여부는 중요하지 않습니다. 동일한 데이터가 중 하나로 제출됩니다. 이 분야의

모두 :

<input name="xml" value="&lt;systemCode>APP&lt;/systemCode>" /> 
<input name="xml" value="&lt;systemCode&gt;APP&lt;/systemCode&gt;" /> 

는 다음과 같이 제출하기 :

xml=%3CsystemCode%3EAPP%3C%2FsystemCode%3E

이 언어 무관 - 그것은 브라우저 동작입니다. 브라우저가 HTML을 파싱하면 실제로 두 필드가 같은 html로 정규화됩니다. 페이지의 소스를 보면 소스 HTML이 입력 사이에 다르다는 것을 알 수 있지만 form.innerHTML 값을 읽으면 구문 분석 된 HTML이 동일하다는 것을 알 수 있습니다.

데모 :
http://jsfiddle.net/gilly3/Xdj5E/

관련 문제