【问题标题】:XML File Transformations for inner text of an element?元素内部文本的 XML 文件转换?
【发布时间】:2020-06-30 14:49:21
【问题描述】:

我正在为我们的一个解决方案设置发布管道,但我正在努力在我的 web.config 上使用文件转换来更改元素的内部文本值。

从外观上看,您可以替换/插入/etc 附加到特定属性的值,但不能替换内部文本。这是否意味着我将无法将文件转换用于我的目的?

<setting name="Test" serializeAs="String">
<value>True</value>
</setting>

必须将“True”值替换为 False。有很多类似的实例需要替换。这可以通过 XML 文件转换来完成吗?我不能使用变量替换方法,因为它只适用于某些元素,如连接字符串等。

提前致谢。

【问题讨论】:

    标签: asp.net xslt azure-devops azure-pipelines web.config-transform


    【解决方案1】:

    您可以使用简单的 XSL 转换。

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        version="1.0">
    
      <xsl:output method="xml" indent="yes"/>
    
      <xsl:template match="setting[@name='Test']/value">
        <xsl:element name="value">False</xsl:element>
      </xsl:template>
    
      <xsl:template match="@*|node()">
        <xsl:copy>
          <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
      </xsl:template>
    
    </xsl:stylesheet>
    

    在这里看到它的工作:https://xsltfiddle.liberty-development.net/bEzknsB

    【讨论】:

    • 谢谢,这成功了。看起来很简单,除了语法之外,我只是不熟悉转换的工作原理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 2011-07-29
    • 2013-01-15
    相关资源
    最近更新 更多