2012-05-16 95 views
0

我有下面的XML文件,我正在尝试编辑它。该文件开发不佳,因此在整个文档中包含多个名称空间声明和关闭根标记。反正有这些额外的命名空间和结束标签,只留下1名称空间在文件的顶部和1结束标签在底部?将多个XML文档流组合成一个有效文档

下面是该文件的一个简化版本:

<?xml version="1.0" encoding="UTF-8"?> 
<p:demographic xmlns:p="http://crown.esrd.net/crown"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://crown.esrd.net/crown crown.xsd"> 
<patient> 
<lastName>JOHNS</lastName> 
<firstName>JASON</firstName> 
<middleInitial>Y</middleInitial> 
</patient> 
</p:demographic> 
<?xml version="1.0" encoding="UTF-8"?> 
<p:demographic xmlns:p="http://crown.esrd.net/crown"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://crown.esrd.net/crown crown.xsd"> 
<patient> 
<lastName>CALDWELL</lastName> 
<firstName>PENNY</firstName> 
<middleInitial>Y</middleInitial> 
</patient> 
</p:demographic> 
+0

该输入实际上并不是一个有效的XML文件,这使问题标题有点误导。编辑。 –

+2

...另外,由于输入不是有效的文档,因此无法使用XSLT完成(或者,无法单独使用XSLT完成)。是否有你的问题标记为“xslt”的原因? –

+0

这是事情 - 以确保正确的方式来做这件事(例如,不要在'CDATA'部分引用''字符串)是_hard_。事实上,如果我打算这样做,我可能会使用一个真正的XML解析器,记录文件偏移量以检测每个错误,寻找下面的错误并重新运行以识别片段偏移量,为每个片段提供内容,合并他们......输出将被保证是正确的,不像更天真的方法,但它也比我要做的StackOverflow上的答案更多的工作。 –

回答

0

那么从您发布的内容。 只需使用文本编辑器删除第一个xml指令。 添加一个根节点的开始标签,为其添加命名空间 撕掉其余部分并添加结束根标签。

鲍勃是你母亲的姐姐的兄弟。

写一点代码来做到这一点,如果你有几个,不应该太难。

相关问题