1

Web Deploy 3.0を使用して、展開前にweb.configに変更を加えようとしています。次のxmlがあるとしましょう:

<node>
    <subnode>
        <connectInfo httpURL="http://LookImAUrl.com" />
    </subnode>
<node>

また、「http:// ...」の「http」だけを一致させて、httpsに置き換えることができるようにしたいと思います。

XPath文字列関数を調べて理解しました。たとえば、式の途中に配置する方法がわかりません。

"//node/subnode/connectInfo/@httpURL/substring-before(../@httpURL,':')" 

それは基本的に私がやりたいことですが、正しく見えません。

4

2 に答える 2

1

XPath 1.0を使用して、URLの最初の部分を返したい場合は、次を使用します。

substring-before(//node/subnode/connectInfo/@httpURL,':')

ただし、これは最初のconnectInfo要素の値のみを返すことに注意してください。

connectInfoHTTPを使用するノードを取得する場合:

//node/subnode/connectInfo[starts-with(@httpURL,'http:')]

httpURLHTTPを使用するすべてのものを取得したい場合:

//node/subnode/connectInfo/@httpURL[starts-with(.,'http:')]
于 2012-09-07T12:25:12.863 に答える
1
 "//node/subnode/connectInfo/@httpURL/substring-before(../@httpURL,':')" 

それは基本的に私がやりたいことですが、正しく見えません。

しかし、それは正しく、http と一致します。

(ちなみに、..なしでもっと短く書くことができます

    //node/subnode/connectInfo/@httpURL/substring-before(.,':')

)

ただし、値内に部分ノードがないため、@httpUrl の値を指すある種のポインターではなく、文字列 "http" が返されます。

(XPath 2 では) 属性と新しい値を返し、呼び出し言語で変更することができます。

    //node/subnode/connectInfo/@httpURL/(., concat("https:", substring-after(.,':')))
于 2012-09-06T21:20:45.530 に答える