2015-06-05 12 views
0

具有处理指令如何添加一个处理指令[jdom2]

<?xml-stylesheet type="application/xml" href="catalog.xsl" ?> 

如何可以将它通过jdom2被添加到现有的XML像

<?xml version="1.0" encoding="ISO-8859-1"?> 

<catalog xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org"> 
    <foo:cd> 
     <title>Empire Burlesque</title> 
     <artist>Bob Dylan</artist> 
     <country>USA</country> 
     <company>Columbia</company> 
     <price>10.90</price> 
     <bar:year>1985</bar:year> 
    </foo:cd> 
    <foo:cd> 
     <title>Hide your heart</title> 
     <artist>Bonnie Tyler</artist> 
     <country>UK</country> 
     <company>CBS Records</company> 
     <price>9.90</price> 
     <bar:year>1988</bar:year> 
    </foo:cd> 
    <foo:cd> 
     <title>Greatest Hits</title> 
     <artist>Dolly Parton</artist> 
     <country>USA</country> 
     <company>RCA</company> 
     <price>9.90</price> 
     <bar:year>1982</bar:year> 
    </foo:cd> 
</catalog> 

只是为了完成这个例子,在这里是XSL

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org"> 
<xsl:template match="/"> 
    <html> 
    <body> 
    <h2>My CD Collection</h2> 
    <table border="1"> 
     <tr bgcolor="#9acd32"> 
     <th>Title</th> 
     <th>Artist</th> 
     <th>Country</th> 
     <th>Company</th> 
     <th>Price</th> 
     <th>Year</th> 
     </tr> 
     <xsl:for-each select="catalog/foo:cd"> 
     <tr> 
     <td><xsl:value-of select="title"/></td> 
     <td><xsl:value-of select="artist"/></td> 
     <td><xsl:value-of select="country"/></td> 
     <td><xsl:value-of select="company"/></td> 
     <td><xsl:value-of select="price"/></td> 
     <td><xsl:value-of select="bar:year"/></td> 
     </tr> 
     </xsl:for-each> 
    </table> 
    </body> 
    </html> 
</xsl:template> 
</xsl:stylesheet> 
+0

XSL在这里并不重要。您必须处理XML的哪个Java代码? –

回答

3

喜欢的东西

SAXBuilder builder = new SAXBuilder(); 
Document doc = (Document) builder.build(xmlFile); 
ProcessingInstruction xsl = new ProcessingInstruction("xml-stylesheet","type='text/xsl' href='catalog.xsl'"); 
doc.addContent(0, xsl); 

应该工作。请添加您的代码以获得与您的项目更好匹配的答案。

+1

不错,还要注意,如果你愿意,你可以使用[“伪属性”方法](http://jdom.org/docs/apidocs/org/jdom2/ProcessingInstruction.html#setPseudoAttribute(java.lang.String ,%20java.lang.String))来单独获取/设置类型和href。 – rolfl

相关问题