在MSDEPLOY.EXE部署期間,我試圖將參數噴射到XML配置文件中,但配置值存儲在CDATA元素中。以下是文件的內容,稱爲paths.xml:Web部署設置嵌入在CDATA元素中的XML配置文件的參數化
<?xml version="1.0" encoding="UTF-8"?>
<course>
<questionnaires><![CDATA[https://www.site.com/somepage.asp]]></questionnaires>
</course>
我需要的是URL轉換成不同的東西,但我不能找出正確的XPath和語法我的parameters.xml文件,在這裏是什麼我必須得:
<?xml version="1.0" encoding="utf-8"?>
<parameters>
<parameter name="QuestPath" description="Questionnaires path" defaultValue="<questionnaires><![CDATA[https://www.foo.com/somepage.asp]]></questionnaires>" tags="">
<parameterEntry kind="XmlFile" scope="paths.xml$" match="/course/questionnaires" />
</parameter>
</parameters>
我只有很少的運氣引用CDATA元素來取代它,所以你可以看到我現在試圖取代包括它的CDATA內容整個調查問卷的元素。我不得不做一些轉義嵌入的尖括號,所以parameters.xml沒有被拒絕,因爲XML格式無效。
現在,得到的paths.xml結束,如:
<?xml version="1.0" encoding="UTF-8"?>
<course>
<questionnaires>https://www.foo.com/somepage.asp</questionnaires>
</course>
所以,事情已經解決了CDATA元素降到只有它的內容,CDATA不再出現在paths.xml我以爲會引起讀取它失敗的程序。幫幫我!
也許這將幫助? http://stackoverflow.com/a/570538/1394393 – jpmc26
謝謝 - 是的,我發現一個,並能夠製作XPath檢索CDATA,但取代它的成功率較低。我想到最簡單的解決方法可能是完全忽略XML,並將其視爲參數kind =「TextFile」,然後使用正則表達式替換,這在過去對我來說效果很好。 – Michael12345