的我想變換XSL只遞歸複製一些元件和除去一些後代
<?xml version="1.0" ?>
<mydoc>
<file>
<colors>
<blue />
<red />
<green />
</colors>
<secret>
<username />
<password />
</secret>
</file>
</mydoc>
成
<?xml version="1.0" ?>
<colors>
<blue />
<red />
</colors>
在普通的英語,我想的顏色元件遞歸複製,包括文本,忽略XML文檔的其餘部分並丟棄綠色元素。
有一些解決方案適用於上述示例,但如果XML稍有不同,則會失敗。例如通過添加顏色元素下的巢元件,或其他元件,其不處於顏色元件的層次結構,或文本是在顏色元素的範圍(GOOD TEXT)和另一個不在其範圍內的文本(不良文本)。
<?xml version="1.0" ?>
<mydoc>
<file>
<colors>
<nest>
<blue />
<red />
<green />
</nest>
GOOD TEXT
</colors>
<secret>
<username />
<password />
</secret>
BAD TEXT
</file>
<other>BAD TEXT TWO</other>
</mydoc>
我最感興趣的是一個通用的解決方案,而不是定製到這裏介紹的例子。
我試圖將解決方案應用於真實世界的示例,但失敗了。我總結了我在更新問題時發現的問題,第二個例子包括輕微的變化。您的第二個解決方案更強大並且成功。非常感謝。 –
我已經更新了第一個解決方案,並保留了身份規則,因爲它是公認的規則。 –