我需要切换两个元素的顺序,然后更改它们的类名。
这是转换部分:
<div id="container-4">
<div class="df-width-40">lorem</div>
</div>
<div id="container-5">
<div class="df-width-100">ipsum</div>
</div>
上面的代码应该执行以下操作: 将#container-4中的div.df-width-40替换为#container-5中的div.df-width-100。
然后用#container-4中的div.df-width-40替换#container-5中的div.df-width-100。
基本上只需在#container-4和#container-5中切换子div。
但我还需要更改类名,以便div.df-width-40将名称更改为div.df-width-100,而副verca
原始xml:
<div id="container-4">
<div class="df-width-40">ipsum</div>
</div>
<div id="container-5">
<div class="df-width-100">lorem</div>
</div>
xslt后的通缉结果:
xpath
警告: 由于复杂的布局和我无法控制的动态内容,我无法获得div的内容。为清晰起见,缩小了xpath和元素类名称。
答案 0 :(得分:1)
如果复制现有的div及其属性,然后只交换div的内容,如
public class AnotherPersonViewModel {
//no required attribute
public string last_name {get; set;}
//no required attribute
public string first_name {get; set;}
//... rest of attributes
}
然后你应该得到你想要的结果,
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="div[@id='container-4']/div[starts-with(@class,'df-width-40')]">
<xsl:copy>
<xsl:apply-templates select="@*,
../following-sibling::div[@id='container-5']/div[@class='df-width-100']/node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="div[@id='container-5']/div[@class='df-width-100']">
<xsl:copy>
<xsl:apply-templates select="@*,
../preceding-sibling::div[@id='container-4']/div[@class='df-width-40']/node()"/>
</xsl:copy>
</xsl:template>
</xsl:transform>
转化为
<?xml version="1.0" encoding="UTF-8"?>
<body>
<div id="container-4">
<div class="df-width-40">lorem</div>
</div>
<div id="container-5">
<div class="df-width-100">ipsum</div>
</div>
</body>