2012-05-16 129 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指令。 添加一個根節點的開始標籤,爲其添加命名空間 撕掉其餘部分並添加結束根標籤。

鮑勃是你母親的姐姐的兄弟。

寫一點代碼來做到這一點,如果你有幾個,不應該太難。

相關問題