元素内部文本的 XML 文件转换?

Posted

技术标签:

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

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

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

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

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

提前致谢。

【问题讨论】:

【参考方案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

【讨论】:

谢谢,这成功了。看起来很简单,除了语法之外,我只是不熟悉转换的工作原理。

以上是关于元素内部文本的 XML 文件转换?的主要内容,如果未能解决你的问题,请参考以下文章

根据内部元素的 ID 将平面 xml 转换为树层次结构

vb.net 应用程序将 xml 转换为文本

如何将base64的文本文件转换为xml文件(或任何其他类型的文件)

是否有任何现成的 xslt 文件可以将 ODF 内容 xml 转换为纯文本?

XSLT:如何使用 Muenchian 分组将 XML 转换为文本文件

在 php 中将 XML 文档转换为数组时,有没有办法将其转换回来并将其保存为属性为元素的 XML 文件?