我有以下xslt字符串格式的部分:-
<xsl:if test="TestValue3 and TestValue3 != ''">
<xsl:attribute name = "TestDate" >
<xsl:value-of select = "TestValue3" />
</xsl:attribute>
</xsl:if>
我只想从c#代码中获取其属性名称。
Attribuute Name= TestDate
我该如何实现?
答案 0 :(得分:2)
使用您喜欢的XML API加载XSLT并迭代/查询有问题的项目(在这种情况下,您需要查找拥有的xsl:if
和条件本身)。例如您可以将其加载到XmlDocument
或XDocument
中。
您可以使用XPath
查找XmlDocument
的元素,如果使用XDocument
,则可以使用 LINQ 。
请勿尝试使用不适合结构化数据的技术。
即
实际上我是将上述代码块添加到现有的xslt中,但是在添加之前,我需要检查属性名称= TestDate是否已经存在...为此,我需要知道属性名称,因为属性名称可以随每个块而变化,并非每次都可以解决
再次使用上述建议。 XmlDocument
和XDocument
都允许加载/编辑/保存。
答案 1 :(得分:1)
如果我正确理解您的意见,则应该这样做,否则请添加更多上下文。
<xsl:if test="TestValue3 and TestValue3 != ''">
<xsl:if test="not(@TestDate)">
<xsl:attribute name = "TestDate" >
<xsl:value-of select = "TestValue3" />
</xsl:attribute>
</xsl:if>
</xsl:if>