-1
我需要使用XSL在xml中的两个元素之间提取几个元素,并将提取的内容写入到xml文件中。如何使用XSL 2.0选择xml文件中两个特定元素之间的多个元素
我有下面的XML。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<element_1>
<h1>title</h1>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<table>
<tr>
<td />
</tr>
</table>
<h1>Another Title</h1>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<table>
<tr>
<td/>
</tr>
</table>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<table>
<tr>
<td/>
</tr>
</table>
<h1>Some other Title</h1>
<p>paragraph</p>
<table>
<tr>
<td/>
</tr>
</table>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<table>
<tr>
<td/>
</tr>
</table>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
</element_1>
<element_2/>
</root>
XSL是新的给我,并面临生成与提取的内容的新文件的难度。不知何故,我可以管理生成新文件,但无法提取两个特定()标签之间的标签。以上XML是第三方工具的输出。
请分享您的想法或者如果有人有想法提取标签之间的元素?
预期的输出应该看起来像下面:
File1.xml:
<modified>
<h1>title</h1>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<table><tr><td/></tr></table>
</modified>
File2.xml:
<modified>
<h1>Another Title</h1>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<table><tr><td/></tr></table>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<table><tr><td/></tr></table>
</modified>
File3.xml:
<modified>
<p>paragraph</p>
<table><tr><td/></tr></table>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
<table><tr><td/></tr></table>
<p>paragraph</p>
<p>paragraph</p>
<p>paragraph</p>
</modified>
谢谢。
这组节点以'h1'并将其输出到一个文件名'文件[否] .xml' –
应该足够使用'的'为第一组产生'File1.xml',为第二组产生'File2.xml',等等。 –
感谢您的回复。 @Joel M. Lamsen,但当我在我的系统中尝试XSL时,我得到了这个错误:致命错误:java.lang.IllegalArgumentException:URI方案不是“文件” ; SystemID:file:/// C:/projects/XSL/XSL_Transformation.xsl;行号:8; Column#:-1 转换过程中出错 net.sf.saxon.trans.XPathException:java.lang.IllegalArgumentException:URI方案不是“文件” – Kepler