2

私はこのapplication.xmlを持っています

<?xml version="1.0" encoding="UTF-8"?>
<application id="Application_1326308152661" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
   <description>MIC Server Application.</description>
   <module>
      <web> ...         
      </web>
   </module>
   <module>
      <ejb>mic-sqlbridge.jar</ejb>
   </module>
   <security-role> ...
   </security-role>
</application>

この xml では、タグ ejb を含む「module」タグの部分を削除する必要があります。これを行うために私は試しました

<xmltask source="application.xml" dest="application_X.xml"> 
   <remove path="/application/module[ejb/text() = 'mic-sqlbridge.jar']"/> 
</xmltask> 

残念ながら、これは何も削除しませんでした-ログ部分は次のとおりです。

[xmltask] Reading application.xml
[xmltask] Executing xmltask 1.16
[xmltask] Processing application.xml into application_X.xml
[xmltask] Using predefined xml catalog
[xmltask] Applying RemovalAction() to /application/module[ejb/text() = 'mic-sqlbridge.jar']
[xmltask] Applied RemovalAction() - 0 match(es)
[xmltask] RemovalAction() (/application/module[ejb/text() = 'mic-sqlbridge.jar']) failed to match
[xmltask] Normalizing resultant document

何か案が?前もって感謝します!

フランク

4

1 に答える 1

5

これを読んで解決策が得られました。「要素のローカル名に関心があることを XPath メカニズムに伝えるには、先頭に ':' を付けて各 XML 要素名の範囲を指定するだけで十分です。」

したがって、パスステートメント

path="/application/module[ejb/text() = 'mic-sqlbridge.jar']"

になる

path="/:application/:module[:ejb/text() = 'mic-sqlbridge.jar']"

完璧に機能したもの。

于 2013-12-18T08:08:28.697 に答える