这是我的工作噩梦:我们有一堆文件是html页面,但是包含额外的xml元素(所有前缀都是我们公司名称'TLA'),以便为我现在正在重写的旧程序提供数据和结构
示例表单:
<html >
<head>
<title>Highly Simplified Example Form</title>
</head>
<body>
<TLA:document>
<TLA:contexts>
<TLA:context id="id_1" value=""></TLA:context>
</TLA:contexts>
<TLA:page>
<TLA:question id="q_id_1">
<table>
<tr>
<td>
<input id="input_id_1" type="text" />
</td>
</tr>
</table>
</TLA:question>
</TLA:page>
<!-- Repeat many times -->
</TLA:document>
</body>
</html>
我的任务是编写一个预处理器,将这样的文档拆分为两个文档:一个只包含'TLA'元素的xml文件和一个只包含html元素的html文件。
示例XML:
<?xml version="1.0" encoding="utf-8" ?>
<TLA:document>
<TLA:contexts>
<TLA:context id="id_1" value=""></TLA:context>
</TLA:contexts>
<TLA:page>
<TLA:question id="q_id_1">
</TLA:question>
</TLA:page>
<!-- Repeat many times -->
</TLA:document>
示例HTML:
<html >
<head>
<title>Highly Simplified Example Form</title>
</head>
<body>
<table>
<tr>
<td>
<input id="input_id_1" type="text" />
</td>
</tr>
</table>
<!-- Repeat many times -->
</body>
</html>
现在我可以通过一次处理一个元素并将它们复制到新文档来实现这一点,但我认为通过使用一个或两个传递变换或一些聪明的序列化可能有更简单的方法来做到这一点但是我不知道要探索哪些途径。
那么有没有人建议如何处理这个?理想情况下VB.net,但C#或其他东西也是可以接受的。
更新
似乎xslt是这样做的方式,但我对它知之甚少,我仍然需要一些帮助。似乎// namespace :: TLA可能是提取数据元素的正确xpath,但我不知道如何实现它。