XML 元素内部文本的文件转换?
XML File Transformations for inner text of an element?
我正在为我们的一个解决方案设置发布管道,但我正在努力使用 web.config 上的文件转换来更改元素的内部文本值。
从外观上看,您可以 replace/insert/etc 值附加到特定属性,但不能附加到内部文本。这是否意味着我将无法为我的目的使用文件转换?
<setting name="Test" serializeAs="String">
<value>True</value>
</setting>
"True" 值必须替换为 False。有相当多的类似实例需要更换。这可以通过 XML 文件转换来完成吗?我不能使用变量替换方法,因为它只适用于某些元素,如 connectionString 等。
提前致谢。
您可以使用简单的 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>
我正在为我们的一个解决方案设置发布管道,但我正在努力使用 web.config 上的文件转换来更改元素的内部文本值。
从外观上看,您可以 replace/insert/etc 值附加到特定属性,但不能附加到内部文本。这是否意味着我将无法为我的目的使用文件转换?
<setting name="Test" serializeAs="String">
<value>True</value>
</setting>
"True" 值必须替换为 False。有相当多的类似实例需要更换。这可以通过 XML 文件转换来完成吗?我不能使用变量替换方法,因为它只适用于某些元素,如 connectionString 等。
提前致谢。
您可以使用简单的 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>