2009-09-17 5 views
0

C#에서 지정한 특정 노드의 모든 인스턴스에서 공백을 제거하려면 어떻게해야합니까?XML 노드에서 공백 제거

<XML_Doc> 

    <Record_1> 
    <Name>Bob</Name> 
    <ID_Number>12345</ID_Number> 
    <Sample></Sample> 
    </Record_1> 

    <Record_2> 
    <Name>John</Name> 
    <ID_Number>54321</ID_Number> 
    <Sample></Sample> 
    </Record_2> 

</XML_Doc> 

: 그것은 다음과 같습니다 그래서 내가 좋아하는 것이 무엇

<XML_Doc> 

    <Record_1> 
    <Name>Bob</Name> 
    <ID_Number>12345</ID_Number> 
    <Sample> 
    </Sample> 
    </Record_1> 

    <Record_2> 
    <Name>John</Name> 
    <ID_Number>54321</ID_Number> 
    <Sample> 
    </Sample> 
    </Record_2> 

</XML_Doc> 

<Sample> 태그의 모든 인스턴스를 가지고 서식을 변경하는 것입니다 : 예를 들어이 전 다음과 같은 XML 문서가 있다고 가정 해 봅시다 편집 :

XML 파일을 사용하는 다른 응용 프로그램은 저에게 작성된 것이 아니며 XML 문서 자체의 구조를 수정할 수 없습니다. 나는 XML 파일을 파싱하고 내가 지정한 노드의 각 인스턴스를 대체하는 유틸리티를 작성 중이다. <Sample></Sample> 태그가 같은 줄에있는 예제는 문서의 원래 형식과 다른 응용 프로그램이 올바르게 읽을 수 있도록 문서가 어떻게 필요합니까?

+0

그것은 분명하지 않다거나 XML에 whitepace 및 다른 문자를 보존하려는 경우. 귀하의 예제는 공백을 제거하고 보존하지 않는 것 같습니다. –

+0

당신이 맞습니다, 나는 물건을 거꾸로 말했습니다. –

+0

원본 xml에 문제가 없습니다. 종료 노드가 다른 행에 있고 동일한 행에있는 경우 응용 프로그램이 다르게 동작하지 않아야합니다. 이 XML을 사용하는 응용 프로그램에서 거부하고 있습니까? – shahkalpesh

답변

1

공백을 보존하려는 경우 (예 : 탭, 캐리지 리턴 및 기타 형식) CDATA (분석되지 않은 문자 데이터)을 사용할 수 있습니다. 당신은 단지 심미적 인 목적을 위해 특정한 방식으로 포맷 된 XML 문서를 갖고 싶어

<![CDATA[ 
]]> 

그러나, 나는 혼자 떠날 당신을 조언한다.

사용하는 XML 문서에 다음 코드 CDATA 섹션을 작성하려면 :

XmlNode itemDescription = doc.CreateElement("description"); 
XmlCDataSection cdata = doc.CreateCDataSection("<P>hello world</P>"); 
itemDescription.AppendChild(cdata); 
item.AppendChild(itemDescription); 

이 귀하의 의견을 바탕으로

<description><![CDATA[<P>hello world</P>]]></description> 
0

생산을, 당신이 를 사용할 수 있습니다 생각 XmlWriterSettings.NewLineHandling 텍스트 노드가 캐리지 리턴을 처리하는 방법을 변경하는 속성. 실험을해야합니다. 수신 응용 프로그램에 문제를 파싱하는 일부 라인이있어 \ r \ n 또는 다른 것을 찾고 있습니다.

1

난 당신이

xml.Settings.NewLineHandling = NewLineHandling.Entitize; 
1

은 내가 XSLT 변환을 사용하는 것이 좋습니다 것입니다 설정할 생각합니다. 이 방법을 사용하면 공백을 제거하거나 보존하는 것을 제어 할 수 있습니다.

MSDN이 문제를 해결하는 기사를 가지고, 참조 : Controlling White Space with the DOM 방금 ​​XML 포맷 한하려는 경우