我遇到了另一位工程師的問題。作爲一名新工程師,我必須找出解決方案,但我一直無法做到。任何幫助將不勝感激,我發現最接近的東西是Chunk string with XSLT,但仍然不是那裏。我只能使用XSL v1.0。XSLT:讀取作爲字符串傳遞的xml文檔的參數
參數作爲巨大的字符串傳遞給我的樣式表。它最初來自XML文檔。字符串看起來像這樣。
With <xsl:value-of select="$servers"/>
其中$servers
是傳遞給我的字符串的參數。該字符串看起來是這樣的:
<license><active_servers><server><name>MIKE</name><capacity>18</capacity><status>0</status><expiration></expiration><left>0</left><comment></comment></server><server><name>Susie</name><capacity>0</capacity><status>1</status><expiration>2014-07-04T00:00:00Z</expiration><left>5238568</left><comment></comment></server><server><name>Zoe</name><capacity>5000</capacity><status>1</status><expiration></expiration><left>0</left><comment></comment></server></active_servers></license>
這是作爲一個參數去樣式表傳遞的XML數據的一部分。實際文檔有300行左右的數據。區分這些「節點」的唯一區別是<server>
和</server>
。如果它是一個非常大的字符串,是否有辦法將數據從這裏拉出來?例如,可以說例如:
。我需要找到「佐伊」,看看她是否有「過期」,如果她沒有,我需要她的「身份」。所以Zoe將會顯示「1」狀態,因爲她沒有到期。雖然MIKE將顯示「0」,Susie將顯示2014-07-04T00:00:00Z。
我已經瀏覽了谷歌和堆棧溢出找到一個解決方案來解析/閱讀一個巨大的字符串。但是,我還沒有找到足夠接近的解決方案,在那裏我可以做到這一點。截至目前,我被卡在沒有工作副本,2天沒有得到任何地方的研究。
字符串不是XMl,不能被解析爲XML。有沒有辦法將*路徑*作爲參數傳遞給實際的XML文檔? –
我4天前通過電子郵件向世界各地的其他工程師發送電子郵件,但沒有收到回覆。所以我認爲,這是他想要的方式。我想也許我錯過了能夠讀取像這樣的字符串的東西。我知道我可以測試某個關鍵詞的字符串,比如MIKE或Zoe,但我認爲我無法測試關鍵字後面的數據,我是否正確? – misterbear
您可以使用XSLT 1.0提供的字符串函數將字符串*解析爲字符串*,這將非常繁瑣且容易出錯。您應該努力將輸入*處理爲XML *,這意味着(1)訪問XML文件中的原始數據;或(2)連續進行兩次轉換,第一次轉換將參數保存到具有已知路徑的文件中,並從該文件中讀取第二次轉換。 –