2011-01-20 6 views
0

자바에서 .fo 파일로 읽고 태그를 찾아 교체해야합니다. 어떻게 도와 드릴까요? 나는 몇몇 주제를 읽었지 만, 나는 새로운 자바이고, 몇 가지 문제가있다 ...이 파일을 위해 나는 <fo:external-graphic src="url('Images/box.jpg')"/> 태그를 찾아 url = "(다른 경로)"을 대체해야한다!xsl-fo 파일의 태그를 읽고 바꾸기

<fo:block font-weight="bold" space-before.optimum="12pt" space-after.optimum="12pt" padding="0.1in" border="thin solid black"> 
     The manufacturer declines every liability with regard to any direct or 
     consequential damage caused by the equipment to you, your body parts, 
     your personal belongings, your domestic animals e/o beloved relatives. 
     Use this equipment at your own risk, and let God protect your fingers! 
    </fo:block> 

    <fo:block space-before.optimum="6pt">Have fun with our stuff!</fo:block> 

    </fo:block><fo:block id="d0e81" text-align="justify" font="11pt Times" line-height="1.3" space-before.minimum="18pt" space-before.conditionality="retain"> 
    <fo:block font="bold 14pt Helvetica" keep-together.within-column="always" keep-with-next.within-column="always" space-before.minimum="6pt" space-before.optimum="12pt" space-before.conditionality="retain" space-after.optimum="3pt" background-color="silver" padding="3pt" border-top="thin solid black" border-bottom="thin solid black">B. Unpacking &amp; Installing </fo:block> 
    <fo:block space-before.optimum="6pt"> 
     The universal hammer comes shipped in a <fo:wrapper font-style="italic" color="blue" rx:key="carton box">carton box</fo:wrapper> 

    (see Fig. 1) 
. 
    </fo:block><fo:block margin="3pt" border="thin ridge silver" padding="3pt" space-before.optimum="6pt" space-after.optimum="6pt" text-align="center" font-style="italic" font-family="Helvetica" keep-together.within-column="always"><fo:block text-align="center"> 
    <fo:external-graphic src="url('Images/box.jpg')"/> 
    </fo:block> 
     Fig. 1. 
     Shipping Box.</fo:block> 

답변

0

DOM을 만든 다음 fo:external-graphic이라는 요소를 모두 가져옵니다. 그런 다음 src 속성을 원하는대로 변경할 수 있습니다. 다음은 시작하기위한 몇 가지 샘플 코드입니다.

//parse the xml file 
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File("file.xml")); 

//get all elements called fo:external-graphic 
NodeList list = doc.getElementsByTagName("fo:external-graphic"); 
for(int i = 0 ; i < list.getLength() ; i++){ 
    Element element = (Element)list.item(i); 
    NamedNodeMap attributes = element.getAttributes(); 

    //change the src attribute 
    Attr src = (Attr)attributes.getNamedItem("src"); 
    System.out.println(src.getValue()); 
    src.setValue("url('another/path/box.jpg')"); 
} 

//let's print out the resulting doc for debugging purposes 
OutputFormat format = new OutputFormat(doc); 
format.setLineWidth(65); 
format.setIndenting(true); 
format.setIndent(2); 
Writer out = new StringWriter(); 
XMLSerializer serializer = new XMLSerializer(out, format); 
serializer.serialize(doc); 
System.out.println(out.toString()); 
+0

감사합니다. – userN

관련 문제