我有一个包含以下内容的XML文件:
<IMG0></IMG0>
<IMG1></IMG1>
<IMG2></IMG2>它最多代表10张图片。
我试着删除号码,因为有:
<IMG></IMG>
<IMG></IMG>
<IMG></IMG>我做的是:
for (int l = 0; l <= 10; l++)
{
doc.InnerXml.Replace("IMG" + l, "IMG");
}"doc“是一个XMLDocument。
但是节点不会改变。
我能做些什么?
发布于 2021-03-09 22:52:18
通过使用XSLT和身份转换模式。
第二个模板将找到任何以'IMG‘开头的XML元素,并将其转换为'IMG’,同时保持其他元素不变。
XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Betalningsmottagares_x0020_postnr>401 01</Betalningsmottagares_x0020_postnr>
<Betalningsmottagares_x0020_postort>Göteborg</Betalningsmottagares_x0020_postort>
<IMG0>10</IMG0>
<IMG1>20</IMG1>
<IMG2>30</IMG2>
</root>XSLT
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="yes" omit-xml-declaration="no"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[starts-with(local-name(), 'IMG')]">
<IMG>
<xsl:value-of select="."/>
</IMG>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>输出
<?xml version='1.0' encoding='utf-8' ?>
<root>
<Betalningsmottagares_x0020_postnr>401 01</Betalningsmottagares_x0020_postnr>
<Betalningsmottagares_x0020_postort>Göteborg</Betalningsmottagares_x0020_postort>
<IMG>10</IMG>10
<IMG>20</IMG>20
<IMG>30</IMG>30
</root>https://stackoverflow.com/questions/66545960
复制相似问题