2011-01-26 4 views
0

여기 내 코드입니다. 변환 후에는 작가가 <이 &lt;으로 변경된 내용이 있습니다. 파일에 저장하는 XmlWriter를 사용하면이 이스케이프가 표시되지 않으므로 xsl에서 문제가되지 않습니다. xsl에는 몇 가지 <xsl:value-of ... disable-output-escaping="yes"> 변환이 있으며 문제를 일으키는 변환입니다. 다시 말하지만, 변환을 파일에 작성하면 문제는 없습니다. 작성자에 대한 일부 설정을 변경해야한다고 생각했지만 XElement.CreateWriter에는 XmlWriterSettings을 사용하는 생성자가 없습니다.XSLT 거의 그대로 그물에 변환 <

문자열 또는 stringbuilder로 변환하지 않고이 작업을 수행 한 다음 XElement로 다시 구문 분석하는 방법이 있습니까?

새로운 정보 대신 XmlWriter를의

, 나는 내 코드를 변경 : 내가 원하는처럼

using (StreamWriter writer = new StreamWriter()) 
{ 
    _xslt.Transform(section.CreateReader(), null, writer); 
} 

StreamWriter는 지금, 비 이스케이프 문자가, 내가받을 수 있나요 어떻게 다시로드 내 XElement에? 추가 정보를 원하시면 여기

에 대한

요청하지만 아닌 XmlWriter를 가진, StreamWriter를 함께 잘 작동 XSL입니다 :

<xsl:template match="processing-instruction(mark_start')"> 
    <xsl:text disable-output-escaping="yes">&lt;addtext></xsl:text> 
</xsl:template> 

<xsl:template match="processing-instruction('mark_end')"> 
    <xsl:text disable-output-escaping="yes">&lt;/addtext></xsl:text> 
</xsl:template> 

그리고 아니, 나는 내가 그렇게 XML을 통제 할 수 없다 주어진 처리 지침을 고수하십시오. 요약하자면 DOE는 StreamWriter와 작동하지만 XmlWriter에서는 작동하지 않습니다.

<text> 
    this is some text 
    <?mark_start> 
    and some new text 
    <?mark_end> 
    and the rest of the text 
</text> 
+0

변환하려는 XML의 일부와 변환 된 XML을 표시하십시오. –

+0

위의 정보를 추가했습니다. – Wavel

+0

@Wave : 잘못된 결과 XML을 게시하십시오 –

답변