Xml XSLT-用另一个元素覆盖一个元素
我有一个XML,基本上只需要将一个元素复制到另一个元素上Xml XSLT-用另一个元素覆盖一个元素,xml,xslt,xpath,Xml,Xslt,Xpath,我有一个XML,基本上只需要将一个元素复制到另一个元素上 <sitecore> <phrase path="/content/Bootcamper/Data/Forms/Contact" key="Contact" itemid="{1EDC7BBB-2194-4B0E-A031-F0383F60664D}" fieldid="Name" updated="20170410T131336Z"> <de-CH>Absenden</de-CH&g
<sitecore>
<phrase path="/content/Bootcamper/Data/Forms/Contact" key="Contact" itemid="{1EDC7BBB-2194-4B0E-A031-F0383F60664D}" fieldid="Name" updated="20170410T131336Z">
<de-CH>Absenden</de-CH>
<fr-CH>Submit</fr-CH>
<en>Submit</en>
</phrase>
<phrase path="/content/Bootcamper/Data/Forms/Contact/unknown section/Vorname" key="Vorname" itemid="{9D561751-5B89-4B90-A93F-383A591202DE}" fieldid="Title" updated="20170410T123903Z">
<de-CH>Vorname</de-CH>
<en>Firstname</en>
</phrase>
</sitecore>
阿本登
提交
提交
沃名称
名字
我需要的是一个类似的XML,但其内容来自
内部
。和
始终被删除。如果
不存在,则应创建它
<sitecore>
<phrase path="/content/Bootcamper/Data/Forms/Contact" key="Contact" itemid="{1EDC7BBB-2194-4B0E-A031-F0383F60664D}" fieldid="Name" updated="20170410T131336Z">
<de-CH>Absenden</de-CH>
<fr-CH>Absenden</fr-CH>
</phrase>
<phrase path="/content/Bootcamper/Data/Forms/Contact/unknown section/Vorname" key="Vorname" itemid="{9D561751-5B89-4B90-A93F-383A591202DE}" fieldid="Title" updated="20170410T123903Z">
<de-CH>Vorname</de-CH>
<fr-CH>Vorname</fr-CH>
</phrase>
</sitecore>
阿本登
阿本登
沃名称
沃名称
我成功地复制了
并删除了
标签。但现在我必须将
复制到新的(或现有的)
中
如果总是存在
de CH
节点,一种方法是使用一个匹配de CH
的模板复制它,但也添加fr CH
节点
试试这个XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="no"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="en|fr-CH"/>
<xsl:template match="de-CH">
<xsl:copy-of select="." />
<fr-CH>
<xsl:value-of select="." />
</fr-CH>
</xsl:template>
</xsl:stylesheet>
是否总是会出现
标签?是的,总是会出现
标签。效果很好。谢谢
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="no"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="en|fr-CH"/>
<xsl:template match="de-CH">
<xsl:copy-of select="." />
<fr-CH>
<xsl:value-of select="." />
</fr-CH>
</xsl:template>
</xsl:stylesheet>