【发布时间】:2012-04-09 18:46:24
【问题描述】:
有人可以帮我解决这个问题吗?我需要在 C# 中删除节点 "xsl:variable" ,如您所见,这里有两个带有子元素 xsl:variable 的 xsl:template 节点。在此示例中,我需要使用 C# 将其删除。
类似这样的:
XmlDocument d = new XmlDocument();
d.Load("MyFileName.Xml");
XmlNode t = d.SelectSingleNode("/navigation/page[@id='1']");
t.ParentNode.RemoveChild(t);
d.Save();
但我无法获得 'xsl:variable' 到 d.SelectSingleNode() 的路径
请帮帮我?
这是 XSLT:
<xsl:template name="Aggregate:RealECBooleanToXMLBoolean">
<xsl:param name="RealECBoolean" select="/.."/>
<xsl:variable name="var1_result">
<xsl:value-of select="($RealECBoolean = 'Yes')"/>
<xsl:value-of select="($RealECBoolean = 'YES')"/>
<xsl:value-of select="($RealECBoolean = 'X')"/>
</xsl:variable>
<xsl:variable name="var2_resultof_any" select="boolean(translate(normalize-space($var1_result), 'false0 ', ''))"/>
<xsl:choose>
<xsl:when test="string((string((string($var2_resultof_any) != 'false')) != 'false')) != 'false'">
<xsl:value-of select="(string((string($var2_resultof_any) != 'false')) != 'false')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="false()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="Aggregate:LookupRECodeName">
<xsl:param name="RECode" select="/.."/>
<xsl:call-template name="vmf:vmf1_inputtoresult">
<xsl:with-param name="input" select="$RECode"/>
</xsl:call-template>
</xsl:template>
【问题讨论】:
-
它可能找不到节点,因为未定义“xsl:”命名空间。此链接可能会有所帮助:stackoverflow.com/questions/443250/…
-
谢谢 M3NTA7 我有一个获取所有 xsl:template 节点的代码,但下一步是删除所有子 xsl:variable 节点,我不能用这个示例上层做到这一点。需要 SingleNode 值。