2011-10-18 5 views
0

xml을 C#으로 업로드하고 jquery를 사용하여 값을 특정 텍스트 상자에 매핑하는 방법이 있습니까?업로드 xml을 읽고 값이있는 양식의 필드 채우기

<?xml version="1.0" encoding="ISO-8859-1"?> 
<AuditSheet> 
<CustomerInfo> 
<CustomerName></CustomerName> 
<PlantSiteName></PlantSiteName> 
<SystemName></SystemName> 
<PhysicalAddress1></PhysicalAddress1> 
<PhysicalAddress2></PhysicalAddress2> 
</CustomerInfo> 
</AuditSheet> 
+1

질문에'json'이 (가) 태그가 붙은 이유는 무엇입니까? 어떤 응용 프로그램에 대해 이야기하고 있습니까? ASP.NET, WinForms, Silverlight, WPF, ...? 업로드 란 사용자가 무언가를 업로드한다는 의미입니까? –

+0

@DarinDimitrov ive가 그것을 업로드하고 다른 텍스트 상자에 값을 배치 한 후에 XML을 json으로 변환하려고하기 때문에. Asp.net. "XML 업로드". – Johan

+1

왜 XML을 JSON으로 변환 하시겠습니까? 텍스트 상자에 값을 채우기 위해 JSON이 필요한 이유는 무엇입니까? –

답변

0

youve는 정확히 무엇을 달성하기를 원하는지에 대한 간단한 설명과 함께 복잡한 질문을했습니다.

사용자가 XML 파일을 웹 페이지에 업로드 한 다음 AJAX를 사용하여 서버에 XML을 보내고 JSON을 반환한다고 생각하면 그 필드를 채울 수 있습니다. 같은 페이지.

HTTP 처리기 (IHttpHandler 구현)를 만들면됩니다. web.config에 해당 처리기를 특정 URL (예 : /services/sheetuploader.ashx)로 등록하십시오.

AuditSheet 및 CustomerInfo라는 클래스를 정의하고이를 DataContract 특성으로 꾸며서 AuditSheet XML 요소와 일치하는 멤버를 DataMember 특성으로 표시하십시오. 같은

뭔가 :

[DataContract] 
public class AuditSheet 
{ 
    [DataMember] 
    public CustomerInfo CustomerInfo{get; set;} 
} 

[DataContract] 
public class CustomerInfo 
{ 
    [DataMember] 
    public string CustomerName {get;set;} 

    //rest of the members go here... 
} 

그런 다음 AuditSheet 클래스의 인스턴스로 XML을 읽을 System.Runtime.Serialization.DataContractSerializer 객체를 사용할 수 있습니다. 이를 수행하려면 ReadObject 메소드를 참조하십시오. 이 작업은 Http 처리기의 ProcessRequest 메서드에서 수행합니다.

개체를 만든 다음 System.Runtime.Serialization.Json.DataContractJsonSerializer 및 해당 WriteObject 메서드를 사용하여 JSON에 직렬화 할 수 있습니다.

당신은 POST 요청을 사용하여 jQuery's AJAX 방법을 사용할 수있는 서버로 XML을 보낼하여 processRequest 메소드

context.Response.ContentType = "text/json"; 
context.Response.Write(ConvertToJson(auditSheet)); //auditSheet is an instance of AuditSheet read from XML 

에 다음을 추가 클라이언트에 JSON을 다시 보내려면.

당신이 실제로하려고하는 것과 밀접한 관계가 있으며 이것이 시작하는 데 도움이 될 수 있기를 바랍니다.

요아프.