2017-06-12 210 views
-1

我有是,如空白的傳入XML:去除XML標籤空白

< /ns1:pr>< /soapenv:Envelope>

因爲這個空白我的XSLT處理失敗的。有什麼辦法可以省略這些空白空間嗎?

傳入XML:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soapenv:Body> 
    <ns1:pr xmlns:ns1="http://example.com"> 
    <ns1:dis> 
    <TP memberID="121897679001" FirstName="Tom" LastName="regen" auId="42424234">  
    </TP> 
    </ns1:dis> 
    < /ns1:pr> 
</soapenv:Body> 
< /soapenv:Envelope> 
+1

「*有什麼辦法可以省略這些空白嗎?*」不在XSLT中,因爲XSLT無法處理您的輸入。 –

回答

1

不要指輸入爲 「進入XML」,因爲它不是XML。沒有XML工具會處理這個。你有一個選擇

(一)解決在生產或損壞此輸入軟件的bug,讓你處理格式良好的XML,或

(b)修復進入非XML使其成形。

由於格式良好的XML在「<」字符後面除了在註釋或處理指令或CDATA段中不會有空格,而它們希望不重要,所以應該足夠安全,可以使用類似SED的東西進行修復,匹配<\s+<。但修復這個bug會好很多。