2011-01-20 9 views
0

タグを見つけてjavaの.foファイルに置き換える必要があります。どうすればいいのか教えてください。私はいくつかの話題を読んだが、私はJavaで新しく、いくつかの問題を抱えている...このファイルでは、<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

関連する問題