Changeset 27718
- Timestamp:
- 2013-06-27T16:59:01+12:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/DebugService.java
r27165 r27718 197 197 String nameToGet = (String) params.get("name"); 198 198 String matchToGet = (String) params.get("match"); 199 String xPath = (String) params.get("xpath"); 199 200 200 201 String fullNamespace; … … 218 219 XMLConverter converter = new XMLConverter(); 219 220 Document xslDoc = converter.getDOM(xslFile, "UTF-8"); 220 221 NodeList templateElems = xslDoc.getElementsByTagNameNS(fullNamespace, nodeName); 221 Element rootElem = xslDoc.getDocumentElement(); 222 223 if (xPath != null && xPath.length() > 0) 224 { 225 String[] pathSegments = xPath.split("/"); 226 for (int i = 1; i < pathSegments.length; i++) 227 { 228 String currentSegment = pathSegments[i]; 229 int count = 1; 230 if (currentSegment.contains("[")) 231 { 232 count = Integer.parseInt(currentSegment.substring(currentSegment.indexOf("[") + 1, currentSegment.indexOf("]"))); 233 currentSegment = currentSegment.substring(0, currentSegment.indexOf("[")); 234 } 235 Node child = rootElem.getFirstChild(); 236 while (count > 0) 237 { 238 if (child.getNodeType() == Node.ELEMENT_NODE && ((Element) child).getNodeName().equals(currentSegment)) 239 { 240 rootElem = (Element) child; 241 count--; 242 } 243 child = child.getNextSibling(); 244 } 245 } 246 } 247 248 NodeList templateElems = rootElem.getElementsByTagNameNS(fullNamespace, nodeName); 222 249 223 250 if (nameToGet != null && nameToGet.length() != 0) … … 323 350 String nameToSave = (String) params.get("name"); 324 351 String matchToSave = (String) params.get("match"); 352 String xPath = (String) params.get("xpath"); 325 353 String xml = (String) params.get("xml"); 326 354 … … 345 373 XMLConverter converter = new XMLConverter(); 346 374 Document xslDoc = converter.getDOM(xslFile, "UTF-8"); 375 376 Element rootElem = xslDoc.getDocumentElement(); 377 378 if (xPath != null && xPath.length() > 0) 379 { 380 String[] pathSegments = xPath.split("/"); 381 for (int i = 1; i < pathSegments.length; i++) 382 { 383 String currentSegment = pathSegments[i]; 384 int count = 1; 385 if (currentSegment.contains("[")) 386 { 387 count = Integer.parseInt(currentSegment.substring(currentSegment.indexOf("[") + 1, currentSegment.indexOf("]"))); 388 currentSegment = currentSegment.substring(0, currentSegment.indexOf("[")); 389 } 390 Node child = rootElem.getFirstChild(); 391 while (count > 0) 392 { 393 if (child.getNodeType() == Node.ELEMENT_NODE && ((Element) child).getNodeName().equals(currentSegment)) 394 { 395 rootElem = (Element) child; 396 count--; 397 } 398 child = child.getNextSibling(); 399 } 400 } 401 } 347 402 348 403 NodeList templateElems = xslDoc.getElementsByTagNameNS(fullNamespace, nodeName); … … 472 527 XMLConverter converter = new XMLConverter(); 473 528 Document xslDoc = converter.getDOM(xslFile, "UTF-8"); 529 Element xslDocElem = xslDoc.getDocumentElement(); 530 531 if (locationName.equals("collectionConfig")) 532 { 533 GSXSLT.modifyCollectionConfigForDebug(xslDocElem); 534 } 474 535 475 536 Element templateList = this.doc.createElement("templateList"); 476 537 StringBuilder templateListString = new StringBuilder("["); 477 538 478 NodeList xslTemplateElems = xslDoc .getElementsByTagNameNS(GSXML.XSL_NAMESPACE, "template");479 NodeList gsfTemplateElems = xslDoc .getElementsByTagNameNS(GSXML.GSF_NAMESPACE, "template");539 NodeList xslTemplateElems = xslDocElem.getElementsByTagNameNS(GSXML.XSL_NAMESPACE, "template"); 540 NodeList gsfTemplateElems = xslDocElem.getElementsByTagNameNS(GSXML.GSF_NAMESPACE, "template"); 480 541 for (int i = 0; i < xslTemplateElems.getLength() + gsfTemplateElems.getLength(); i++) 481 542 { … … 495 556 { 496 557 templateListString.append("\"match\":\"" + currentElem.getAttribute(GSXML.MATCH_ATT) + "\","); 558 } 559 560 if (currentElem.getUserData("xpath") != null) 561 { 562 templateListString.append("\"xpath\":\"" + currentElem.getUserData("xpath") + "\","); 497 563 } 498 564 templateListString.deleteCharAt(templateListString.length() - 1);
Note:
See TracChangeset
for help on using the changeset viewer.