2008-10-23 6 views
4

Ant를 사용하여 전체 텍스트를 주석 처리해야하는 xml 파일이 있습니다.여러 줄의 텍스트를 Ant로 바꾸기

나는 단어를 대체하기 위해 사용하지만, 내 경우에는 내가 이런 전체 블록 교체해야하는이 개미 작업

<replace file="${src.dir}/Version.as" 
     token="@revisionPrana" value="${revision}"/> 

있다 :

<!--value> 
    <object class="edumatic.backoffice.view.modules.NavigationModuleInfo"> 
    <property name="url" 
    value="edumatic/backoffice/view/modules/support/ExamsNavigationModule.swf"/> 
    <property name="icon" 
    value="edumatic/backoffice/view/modules/support/assets/book.png" /> 
    <property name="title" value="Assessments" /> 
    <property name="pluginID" value="EXAM" /> 
    </object> 
</value> 
<value> 
    <object class="edumatic.backoffice.view.modules.ContentModuleInfo"> 
    <property name="url" 
    value="edumatic/backoffice/view/modules/support/ExamsContentModule.swf" /> 
    <property name="pluginID" value="EXAM" /> 
    </object> 
</value--> 
속으로

<value> 
    <object class="edumatic.backoffice.view.modules.NavigationModuleInfo"> 
    <property name="url" 
    value="edumatic/backoffice/view/modules/support/ExamsNavigationModule.swf"/> 
    <property name="icon" 
    value="edumatic/backoffice/view/modules/support/assets/book.png" /> 
    <property name="title" value="Assessments" /> 
    <property name="pluginID" value="EXAM" /> 
    </object> 
</value> 
<value> 
    <object class="edumatic.backoffice.view.modules.ContentModuleInfo"> 
    <property name="url" 
    value="edumatic/backoffice/view/modules/support/ExamsContentModule.swf" /> 
    <property name="pluginID" value="EXAM" /> 
    </object> 
</value> 

에게

그래서 기본적으로 전체 XML 블록을 주석 처리해야합니다. 바꾸기 작업으로이 작업을 수행 할 수 있습니까 (속성 토큰에 전체 블록을 넣으면 값이 실제로 작동하지 않습니다)? 아니면 개미가있는 XML을 읽고 노드를 삭제하고 XML을 다시 저장하는 빠른 방법이 있습니까?

값이 여러 개인 자식이 있고 주석이 필요하지 않은 자식을 검색하여 바꿀 수있는 옵션이 없습니다.

xml이 IOC 컨테이너 (Prana)에 의해 구문 분석되고 있기 때문에 like 속성을 추가하는 것은 옵션이 아닙니다. 어쩌면 prana는 id = "1"을 무시할 것입니다. 그러나 그것은 여전히 ​​지저분한 것이며, 나는 장기적으로 더러워지기를 좋아하지 않습니다.

답변

8

정규 표현식을 통해 대체 할 항목을 식별 할 수있는 경우 대체 작업 replaceregexx을 사용하는 것이 좋습니다. 문서는 다음과 같습니다 : http://ant.apache.org/manual/Tasks/replaceregexp.html 시작 태그와 종료 태그에 대해 두 번 호출 할 수 있습니다.

교체하는 정규 표현식 당신의 당신은 당신이 모든 태그를 대체하지 않으려는 말하지만, 나는 이것이 가장 쉬운 방법이라고 생각하기 때문에, 조금 번거로울 수 있습니다.

또 다른 옵션은 사용자가 원하는대로 할 수있는 사용자 지정 개미 작업을 만드는 것입니다.

+0

잘 변환 부를 수있는, 참으로, 나는 개미 작업 설명서를 검색하고이 replaceregexp을 발견하지만, 캐리지 리턴 또는 줄 바꿈 처리하는 방법을 궁금해했다. 그것을 시도 할 것입니다. 커스텀 앤티 작업은 훌륭하지만 시간은 회사에서 돈이됩니다 :-). 내 자유 시간에 그걸 연구하고 싶습니다. 고마워. –

+0

replaceregexp에서 작동하도록 관리합니다. 플래그가 필요하다는 것을 깨닫기 전에 잠시 동안 검색을해야했습니다! 고마워! –

+0

당신이 그것을 못 들었습니다. –

3

는이 XML 파일 인 경우에, 당신은 또한 XSLT가

+0

실제로, 그것에 대해 생각하지 않았습니다 (+ 내가 XSLT에 대해 모른다는 사실 ...). –

관련 문제