2015-06-05 1 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 здесь не имеет значения. Какой код Java вам нужно обрабатывать XML? –

ответ

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

Смежные вопросы