Révision 3267
tmp/org.txm.core/src/java/org/txm/xml/StaxDomConstructor.java (revision 3267) | ||
---|---|---|
54 | 54 |
localname = parser.getLocalName(); |
55 | 55 |
|
56 | 56 |
String ns = parser.getNamespaceURI(); |
57 |
Element e = null; |
|
58 |
if (ns != null) { |
|
59 |
e = doc.createElementNS(ns, localname); |
|
60 |
} |
|
61 |
else { |
|
62 |
e = doc.createElement(localname); |
|
63 |
} |
|
57 |
if (ns == null) ns = ""; |
|
58 |
Element e = doc.createElementNS(ns, localname); |
|
64 | 59 |
|
65 | 60 |
for (int i = 0; i < parser.getAttributeCount(); i++) { |
66 | 61 |
ns = parser.getAttributeNamespace(i); |
... | ... | |
88 | 83 |
case XMLStreamConstants.END_ELEMENT: |
89 | 84 |
|
90 | 85 |
elements--; |
91 |
if (elements == 0) return doc.getDocumentElement(); |
|
86 |
if (elements == 0) return doc.getDocumentElement(); // stop parsing elements now : it was the last element
|
|
92 | 87 |
|
93 | 88 |
currentElement = (Element) currentElement.getParentNode(); |
94 | 89 |
|
tmp/org.txm.core/src/java/org/txm/xml/DOMIdentityHook.java (revision 3267) | ||
---|---|---|
20 | 20 |
} |
21 | 21 |
|
22 | 22 |
@Override |
23 |
public boolean _activate() { |
|
23 |
public final boolean _activate() {
|
|
24 | 24 |
StaxDomConstructor domConstructor = new StaxDomConstructor(parentParser.parser); |
25 | 25 |
try { |
26 | 26 |
dom = domConstructor.getDom(); |
27 |
|
|
27 | 28 |
return dom != null; |
28 | 29 |
} |
29 | 30 |
catch (Exception e) { |
... | ... | |
34 | 35 |
} |
35 | 36 |
|
36 | 37 |
@Override |
37 |
public boolean mustDeactivate() { |
|
38 |
public final boolean mustDeactivate() {
|
|
38 | 39 |
boolean b = dom != null; // the DOM has been constructed and the XMLProcess can continue parsing |
39 | 40 |
if (b) { |
40 | 41 |
try { |
... | ... | |
57 | 58 |
} |
58 | 59 |
|
59 | 60 |
@Override |
60 |
public boolean deactivate() { |
|
61 |
public final boolean deactivate() {
|
|
61 | 62 |
return dom == null; // dom should be null |
62 | 63 |
} |
63 | 64 |
|
... | ... | |
69 | 70 |
if (node == null) return; // nothing to write |
70 | 71 |
|
71 | 72 |
if (node.getNodeType() == Node.ELEMENT_NODE) { |
73 |
parentParser.writer.writeCharacters("\n"); |
|
72 | 74 |
Element e = (Element) node; |
73 | 75 |
NodeList children = e.getChildNodes(); |
74 | 76 |
if (children.getLength() > 0) { |
75 |
parentParser.writer.writeStartElement(e.getNamespaceURI(), e.getLocalName()); |
|
77 |
String ns = e.getNamespaceURI(); |
|
78 |
String ln = e.getLocalName(); |
|
79 |
if (ns == null) { |
|
80 |
parentParser.writer.writeStartElement(ln); |
|
81 |
} else { |
|
82 |
parentParser.writer.writeStartElement(ns, ln); |
|
83 |
} |
|
76 | 84 |
} |
77 | 85 |
else { |
78 | 86 |
parentParser.writer.writeEmptyElement(e.getNamespaceURI(), e.getLocalName()); |
... | ... | |
87 | 95 |
parentParser.writer.writeAttribute(att.getNodeName(), att.getNodeValue()); |
88 | 96 |
} |
89 | 97 |
} |
98 |
//parentParser.writer.writeCharacters("\n"); |
|
90 | 99 |
|
91 | 100 |
for (int c = 0; c < children.getLength(); c++) { |
92 | 101 |
writeDOM(children.item(c)); |
93 | 102 |
} |
94 | 103 |
if (children.getLength() > 0) { |
95 | 104 |
parentParser.writer.writeEndElement(); |
105 |
parentParser.writer.writeCharacters("\n"); |
|
96 | 106 |
} |
97 | 107 |
} |
98 | 108 |
else if (node.getNodeType() == Node.TEXT_NODE) { |
tmp/org.txm.core/src/java/org/txm/xml/Hook.java (revision 3267) | ||
---|---|---|
120 | 120 |
case XMLStreamConstants.END_ELEMENT: |
121 | 121 |
processEndElement(); |
122 | 122 |
elements--; |
123 |
if (elements < 0) { |
|
124 |
Log.severe("ERROR: Hook was not interupted on time AT " + getLocation());
|
|
125 |
} |
|
123 |
// if (elements < 0) {
|
|
124 |
// //Log.severe("ERROR: Hook was not interupted on time AT " + getLocation());
|
|
125 |
// }
|
|
126 | 126 |
break; |
127 | 127 |
case XMLStreamConstants.PROCESSING_INSTRUCTION: |
128 | 128 |
processProcessingInstruction(); |
tmp/org.txm.core/src/java/org/txm/xml/XPathHookActivator.java (revision 3267) | ||
---|---|---|
67 | 67 |
|
68 | 68 |
@Override |
69 | 69 |
public boolean mustActivate() { |
70 |
|
|
70 | 71 |
if (xpath == null) return false; |
71 | 72 |
if (p == null) return false; |
72 | 73 |
|
... | ... | |
75 | 76 |
return p.matcher(hook.getCurrentPath()).matches() && hook.parentParser.getCurrentAttributes().equals(attributesTest); |
76 | 77 |
} |
77 | 78 |
else { |
78 |
return p.matcher(hook.getCurrentPath()).matches(); |
|
79 |
String path = hook.getCurrentPath(); |
|
80 |
return p.matcher(path).matches(); |
|
79 | 81 |
} |
80 | 82 |
} |
81 | 83 |
|
Formats disponibles : Unified diff