像很多人一样,我也有转义>号的问题。数据xml文件如下所示
<XML>
<check><![CDATA[value > 60]]></check>
</Xml>使用xslt,我想创建一个c#函数。检查是在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 > 60 )
}无法使用<xsl:value-of cdata-section-elements="check"/>,因为我无法在模板中使用此数据。
disable-output-escaping仅返回>
希望你们中有一个人有一个可行的解决方案。
提前感谢你
发布于 2011-01-19 01:41:01
谢谢你的帮助,但这不是解决方案,我从一个朋友那里得到了一些帮助,他告诉我在将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");现在它起作用了
发布于 2011-01-18 04:38:16
你根本不需要DOE。只需指定
<xsl:output method="text"/>,结果将是未转义的。
这里是一个小的示例
<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>在任何XML文档(未使用)上应用此转换时,将生成所需的正确结果
public void product(int value)
{
if( value > 60)
}记住:
&、< (>、"和'通常根本不需要转义)在output.--几乎从不需要。
https://stackoverflow.com/questions/4716998
复制相似问题