2011-01-17 2 views
2

나는 많은 사람들이> 사인을 피하는 것과 같은 문제가 있습니다. 데이터 XML 파일 내가 C#을 함수를 만들고 싶습니다 XSLT와XSLT가 도망 치다 >

<XML> 
<check><![CDATA[value > 60]]></check> 
</Xml> 

것 같습니다. 검사는 if 문에서 사용 된 항목입니다. 난 템플릿이 데이터를 사용할 수 렸기 때문에

public void product(int value) 
{ 
if(<xsl:value-of disable-output-escaping="yes" select="actie" />) 

this should be: if(value > 60) but returns if(value &gt; 60) 

} 

<xsl:value-of cdata-section-elements="check"/>는 사용될 수 없다.

해제 출력 이스케이프는 유 중 하나가 작업 솔루션을 &gt;

희망을 반환합니다.

사전

+0

좋은 질문, +1을했다. 완전하고 쉬운 솔루션에 대한 내 대답을 참조하십시오. :) –

+0

당신이 썼습니다. * 나는 많은 사람들이> 사인을 피하는 것과 같은 문제가 있습니다. 그것은 질문이 아니라 성명서입니다. 모든 XML 소비자는 문자 엔티티 처리 방법을 알고 있습니다.어떤 사람들은 XML이없는 XML 문서를 사용하려고 할 때 문제가 있습니다. –

+0

또한 사용할 직렬화 방법이 명확하지 않습니다. @ Dimitre의 대답에 의해 지적 된 '텍스트'직렬화 방법으로 수행 된 탈출은 없습니다. –

답변

0

덕분에 도움을 VOR하지만이 솔루션이 아니었다, 나는 DIT가 무엇인지 XSLT 파일 전화에 내가 잘못하고 있던 나에게 말했다 친구의 도움이 있었다 :

XPathDocument myXPathDoc = new XPathDocument("../../file.xml"); 
XslTransform myXslTrans = new XslTransform(); 
myXslTrans.Load("../../file.xslt"); 
XmlTextWriter myWriter = new XmlTextWriter("../../file.txt", null); 
myXslTrans.Transform(myXPathDoc, null, myWriter); 

나는 그것을 변경 :

XslCompiledTransform myXslTrans = new XslCompiledTransform(); 
myXslTrans.Load("../../file.xslt"); 
myXslTrans.Transform("../../file.xml", "../../file.cs"); 

지금은

+0

'XslCompiledTransform' 클래스의 오래된'XslTransform' 클래스 istead를 사용하면 잘 정의되지 않은 질문과 아무런 관련이 없습니다. –

2

잘 부탁드립니다 당신은 모든 DOE가 필요하지 않습니다.

<xsl:output method="text"/> 

을하고 그 결과를 이스케이프합니다 : 그냥를 지정합니다. 이러한 변화는 임의의 XML 문서 (사용되지 않음)에인가된다

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 

    <xsl:template match="/*"> 
    public void product(int value) 
     { 
     if(<xsl:value-of select="check" />) 
     } 
    </xsl:template> 
</xsl:stylesheet> 

, 원하는 정확한 결과 생산된다 :

public void product(int value) 
     { 
     if(value > 60) 
     } 

여기

작은 예기억하십시오 :

  1. 출력 방법은 "텍스트", XML 문서에서 탈출하는 모든 문자, 같은 &, < 경우 (>, &quot;&apos; 일반적으로 모든 이스케이프 할 필요가 없습니다)는에 이스케이프를 생산 출력.

  2. DOE을 항상 사용하지 마십시오. 거의 필요하지 않습니다.

관련 문제