2010-12-29 2 views
1

xml을 데이터 형식이 SQL 인 SQL Server 데이터베이스에 저장하므로 긴 문자열입니다.SQL Server 텍스트 필드에서 xml 및 back으로 변환하는 방법

지금해야 할 일은이 문자열을 xml로 변환 한 다음이 작업을 수행하고 마지막으로 다시 문자열로 변환하여 데이터베이스에 다시 저장하는 것입니다.

는 XML :

<Posts> 
    <DialogPost> 
     <Type></Type> 
     <User></User> 
     <Customer></Customer> 
     <Date></Date> 
     <Message></Message> 
    </DialogPost> 
</Posts> 

내가 LINQ to XML의 작업을 시작했는데, 큰 것 같다하지만 난 그것을 작동하게 문제가 있어요.

XDocument dialogXML = XDocument.Load("trying to load the xml string right in"); 

db에서 바로 나온 문자열이 마음에 들지 않습니다. 이 문제를 해결하기 위해 나를 어떻게 추천 하시겠습니까? 읽기와 쓰기 모두를 db로 되돌립니다.

+0

왜 XML 필드에 저장하지 않으시겠습니까? – Oded

+0

나는 이미이 텍스트 필드에 저장하고있는 다른 응용 프로그램에 의존하고 있으며, xml 필드 유형을 선호합니다. – Fore

+0

게시 한 XML을 수정했습니다. 그것이 오타가 아닌 경우 잘못된 XML을 복원하여 변경 사항을 취소하십시오. –

답변

2

XDocument.Parse 메서드를 사용하십시오. Load은 XML이 아닌 URI를 예상합니다.

게시 한 XML이 유효하지 않습니다. 끝에 Dialog 태그가 있지만 시작 태그는 없습니다. 다음은 유효한 XML에서 작동하는 예제입니다.

string str = 
@"<?xml version=""1.0""?> 
<!-- comment at the root level --> 
<Posts> 
    <DialogPost> 
     <Type></Type> 
     <User></User> 
     <Customer></Customer> 
     <Date></Date> 
     <Message></Message> 
    </DialogPost> 
    </Posts>"; 
XDocument doc = XDocument.Parse(str); 

Take a look here 예 및 자세한 내용

+0

매력처럼 작동합니다, 감사합니다. 그리고 만약 내가 더 많은 것을 추가하고 싶다면 어떻게하면 좋을까요? – Fore

+0

닫는'DialogPost' 태그 아래에 있지만'Posts' 태그를 닫기 전에 또 다른'DialogPost'를 추가하면됩니다. –

관련 문제