|
Тема
|
xalan, xslt, шаблон който match-ва с namespace
|
|
Автор |
Пepин (овълчил се) |
Публикувано | 10.03.03 19:20 |
|
Опитвам се да направя XSLT шаблон за елемент който принадлежи на namespace. XML файла ми е:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<vdi:ttt xmlns:vdi="my-name-space">
something
</vdi:ttt>
XSL файла който му прилагам е:
<?xml version="1.0"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:vdi1="my-name-space"
>
<xsl:template match="vdi1:ttt">
<root>aaaaa <vdi1:tmt>ddd</vdi1:tmt> aaa</root>
</xsl:template>
</xsl:stylesheet>
Кодът (xalan, java) е следния:
transformer = tFactory.newTransformer(new StreamSource(strWorkspace + "template-to-xsl.xsl"));
dFactory = DocumentBuilderFactory.newInstance();
dBuilder = dFactory.newDocumentBuilder();
Document doc = dBuilder.parse(strWorkspace + strFragmentName + ".final.xml");
DOMSource domSource = new DOMSource(doc);
domSource.setSystemId(strWorkspace + strFragmentName);
DOMResult domResult = new DOMResult();
transformer.transform(domSource, domResult);
FileOutputStream fos = new FileOutputStream(strWorkspace + strFragmentName + ".xsl");
Serializer serializer = SerializerFactory.getSerializer
(OutputProperties.getDefaultMethodProperties("xml"));
serializer.setOutputStream(fos);
serializer.asDOMSerializer().serialize(domResult.getNode());
Дава ми следната грешка:
javax.xml.transform.TransformerException: org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1226)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:638)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
at com.alexlechuck.vdi.Translator.Translate(Translator.java:94)
at com.alexlechuck.vdi.Translator.main(Translator.java:119)
Caused by: org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
at org.apache.xerces.dom.ParentNode.internalInsertBefore(ParentNode.java:392)
at org.apache.xerces.dom.ParentNode.insertBefore(ParentNode.java:320)
at org.apache.xerces.dom.CoreDocumentImpl.insertBefore(CoreDocumentImpl.java:444)
at org.apache.xerces.dom.NodeImpl.appendChild(NodeImpl.java:267)
at org.apache.xml.utils.DOMBuilder.append(DOMBuilder.java:173)
at org.apache.xml.utils.DOMBuilder.characters(DOMBuilder.java:434)
at org.apache.xalan.transformer.ResultTreeHandler.characters(ResultTreeHandler.java:507)
at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.dispatchNodeData(DOM2DTM.java:1592)
at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.dispatchCharactersEvents(DOM2DTM.java:1526)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:356)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:423)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2182)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2008)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
... 5 more
---------
org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
at org.apache.xerces.dom.ParentNode.internalInsertBefore(ParentNode.java:392)
at org.apache.xerces.dom.ParentNode.insertBefore(ParentNode.java:320)
at org.apache.xerces.dom.CoreDocumentImpl.insertBefore(CoreDocumentImpl.java:444)
at org.apache.xerces.dom.NodeImpl.appendChild(NodeImpl.java:267)
at org.apache.xml.utils.DOMBuilder.append(DOMBuilder.java:173)
at org.apache.xml.utils.DOMBuilder.characters(DOMBuilder.java:434)
at org.apache.xalan.transformer.ResultTreeHandler.characters(ResultTreeHandler.java:507)
at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.dispatchNodeData(DOM2DTM.java:1592)
at org.apache.xml.dtm.ref.dom2dtm.DOM2DTM.dispatchCharactersEvents(DOM2DTM.java:1526)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:356)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:423)
at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2182)
at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2008)
at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:638)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
at com.alexlechuck.vdi.Translator.Translate(Translator.java:94)
at com.alexlechuck.vdi.Translator.main(Translator.java:119)
Exception in thread "main"
Грешката в общи линии означава че не е match-нало.
Пробвах да махна namespace-а - работи като пушка.
До колкото разбрах от w3c сайта синтаксиса ми е правилен. Може ли някой да ми каже къде бъркам? Предварително благодаря!
не ме ебе как е Вуте, аз гледам да съм си добре
| |
Тема
|
Re: xalan, xslt, шаблон който match-ва с namespace
[re: Пepин]
|
|
Автор |
WebMister (virtual) |
Публикувано | 14.03.03 11:58 |
|
Xalan ima malko problemi s namespaces :))
ako nqmash shabloni koito trqbva da match-vat elementi s ednakvi imena, v zavisimost ot namespace probvai slednoto
<xsl:template match="*[local-name()='ttt']">
a ako imash - shte trqbva da pogledna - pravil sum go
Life is what you make it - come on and take it
| |
Тема
|
Re: xalan, xslt, шаблон който match-ва с namespace
[re: WebMister]
|
|
Автор |
Пepин (овълчил се) |
Публикувано | 14.03.03 19:57 |
|
Искам да match-на точно определен елемент от точно определен namespace.
Какви други проблеми мога да очаквам с namespaces?
не ме ебе как е Вуте, аз гледам да съм си добре
| |
Тема
|
Re: xalan, xslt, шаблон който match-ва с namespace
[re: Пepин]
|
|
Автор |
joshua (мързелив) |
Публикувано | 20.03.03 23:33 |
|
bez da zacepvam:
vuv faq-a na xalan nyamashe li 1,2,3 Q/A svurzani s namespaces?
pregleda li gi?neshto obshto?
| |
Тема
|
Re: xalan, xslt, шаблон който match-ва с namespace
[re: joshua]
|
|
Автор |
Пepин (овълчил се) |
Публикувано | 21.03.03 09:42 |
|
Проблема бил при зареждането на DOM-а. Правилното е:
dFactory.setNamespaceAware (true);
Ама наистина с MSXML много по-лесно се работи.
не ме ебе как е Вуте, аз гледам да съм си добре
| |
|
|
|
|