임시 파일없이 입력 파일을 출력 파일로 사용하여 xml (예 :)에서 정렬을 수행하기 위해 ant xslt 작업을 실행할 수없는 것 같습니다.
모든 arxml 파일의 내용을 정렬하기 위해 다음 대상을 사용하고 있습니다.
<target name="sort_arxml" depends="init" description="Do a XLST on all arxml files to sort their content">
<tempfile property="sort.xslt" suffix=".xslt" deleteonexit="true" />
<echo file="${sort.xslt}">
<![CDATA[
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()">
<xsl:sort select="child::*"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]></echo>
<xslt style="${sort.xslt}" basedir="../Config" destdir="../Config" extension=".arxml" includes="**/*.arxml" excludes="**/AUTOSAR*"/>
</target>
그러나 예외를 반환하므로 이것을 할 수 없습니다.
java.io.FileNotFoundException: xxxx\Config\Developer\ComponentTypes\yyyy.arxml (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
at org.apache.tools.ant.taskdefs.optional.TraXLiaison.transform(TraXLiaison.java:185)
at org.apache.tools.ant.taskdefs.XSLTProcess.process(XSLTProcess.java:816)
다른 확장자를 사용하면 작동하지만 파일을 원본 위에 다시 복사해야합니다.
누군가 이것을 고쳤습니까? 그리고 만약, 어떻게? 변압기의 문제입니까?
시스템 정보 :
Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Detected Java version: 1.7 in: C:\Program Files\Java\jdk1.7.0_45\jre
Detected OS: Windows 7
그건 그렇고, 임시 파일이나 디렉토리를 만드는 데 아무런 문제가 없으며 XSLT 입력을 출력과 별도로 유지하면 이점이 있습니다. ant XSLT 태스크는 변환을 다시 실행해야하는시기를 감지 할 수 있으며 입력 및 출력 파일이 구별 될 때 디버깅이 용이합니다. 곡물에 반대하지 않는 편이 낫습니다.
출력 파일이 입력 파일과 동일해야 할 필요성을 고려하여 설계 할 수없는 경우 별도의 출력 디렉터리에 쓰고 변환 후 입력 디렉터리를 출력 디렉터리로 바꿉니다.
<target name="sort_arxml" depends="init"
description="Do a XLST on all arxml files to sort their content">
<!-- [ same as in question ] -->
<xslt style="${sort.xslt}" basedir="../Config" destdir="../ConfigTMP"
extension=".arxml" includes="**/*.arxml" excludes="**/AUTOSAR*"/>
<delete dir="../Config"/>
<move file="../ConfigTMP" tofile="../Config"/>
</target>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다