2013-10-30 5 views
0

내 응용 프로그램의 구성 파일 역할을하는 XSL 파일이 있습니다. 사실 그것은 XML 파일이며, XML 파일은 요소를 감싸고 있습니다. 이 파일은 Config.xsl라고 : 나는 변화에게 NEWVALUE와 요소 Test1 파일의 값을 싶습니다개미를 사용하여 xml 요소 업데이트

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   xmlns="http://www.example.org/Config"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"    standalone="yes" /> 
<xsl:template match="/"> 
<Config> 
     <Test>somevalue</Test> 
     <Test1>someothervalue</Test1> 
</Config> 
</xsl:template> 

.

아래는 값을 업데이트하는 데 사용하는 개미 코드입니다.

<?xml version="1.0" encoding="UTF-8" ?> 
<project name="Scripts" default="test"> 
<taskdef resource="net/sf/antcontrib/antcontrib.properties" /> 
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/> 
<target name="test"> 
    <xmltask source="Config.xsl" dest="Config.xsl"> 
     <replace path="Config/Test1/text()" withText="newvalue" /> 
    </xmltask> 
</target> 
</project> 

누구든지이 작업 방법을 알려 주시면 감사하겠습니다.

답변

2

네임 스페이스와 혼동하는 것 같습니다. 아무것도 교체하기 전에 처리해야합니다. XML Task가 어떻게 처리하는지 자세히 알려면 https://today.java.net/pub/a/today/2006/11/01/xml-manipulation-using-xmltask.html#paths-and-namespaces을 참조하십시오. 그러나, 당신은 우리의 원하는 출력을 얻기 위해이 코드를 사용 할 수 있습니다

입력 :

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns="http://www.example.org/Config"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" standalone="yes"/> 
    <xsl:template match="/"> 
    <Config> 
     <Test>somevalue</Test> 
     <Test1>someothervalue</Test1> 
    </Config> 
    </xsl:template> 
</xsl:stylesheet> 

ANT 스크립트 :

<project name="XML-VALIDATION" default="main" basedir="."> 
    <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/> 
    <target name="main"> 
    <xmltask source="config.xsl" dest="output.xml"> 
     <replace path="//:Config/:Test1/text()">xxxxxxx</replace> 
    </xmltask> 
    </target> 
</project> 

출력 :

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.example.org/Config" version="1.0"> 
    <xsl:output encoding="UTF-8" indent="yes" method="xml" standalone="yes" version="1.0"/> 
    <xsl:template match="/"> 
    <Config> 
     <Test>somevalue</Test> 
     <Test1>xxxxxxx</Test1> 
    </Config> 
    </xsl:template> 
</xsl:stylesheet> 
+0

감사합니다 네비게이션. 그것은 매력처럼 작동합니다. 또한 내 소스와 좌석이 모두 XSL 파일이고 작동하도록 동일한 파일을 업데이트하려고합니다. – Santosh