S
susinmn
Нужно из xml-строки взять значение тэга. Пытаюсь делать через dom.
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='vaja'> lotus.domino.Document abDoc = abDB.getDocumentByUNID(docUnID);
DxlExporter dxlExporter = session.createDxlExporter();
String exportResult = dxlExporter.exportDxl(abDoc);
// Получить Document Builder Factory
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
// Включить проверку корректности и выключить пространства имен
factory.setValidating(true);
factory.setNamespaceAware(false);
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
DocumentBuilder docBuilder=null;
try {
docBuilder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
}
InputSource inSource = new InputSource();
inSource.setCharacterStream(new StringReader(exportResult));
org.w3c.dom.Document domdoc = null;
try {
domdoc = (org.w3c.dom.Document)docBuilder.parse(inSource);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
NodeList nodes = null;
nodes = ((org.w3c.dom.Document)domdoc).getElementsByTagName("<jpeg>");
String contentType = "image/jpeg";
Element tag = (Element)nodes.item(0);
exportResult = getCharacterDataFromElement(tag);
if (exportResult == "") {
nodes = ((org.w3c.dom.Document)domdoc).getElementsByTagName("<gif>");
contentType = "image/gif";
tag = (Element)nodes.item(0);
exportResult = getCharacterDataFromElement(tag);
}
if (exportResult == "") {
this.img = null;
this.jLabel.setText("Фотография отсутствует");
add(this.jLabel);
return;
}
public static String getCharacterDataFromElement(Element e) {
Node child = e.getFirstChild();
if ((child instanceof CharacterData)) {
CharacterData cd = (CharacterData)child;
return cd.getData();
}
return "";
}[/CODE]
на
Ругается:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">java.io.FileNotFoundException: C:\Program Files\IBM\Lotus\Notes\framework\xmlschemas\domino_8_5_2.dtd (Системе не удается найти указанный путь.)</div></div><div class="sp-body"><div class="sp-content"> at java.io.FileInputStream.<init>(FileInputStream.java:112)
at java.io.FileInputStream.<init>(FileInputStream.java:72)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.jav
a:161)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at LNUserPhoto.notesAppletInit(LNUserPhoto.java:112)
at lotus.domino.JAppletBase.init(Unknown Source)
at COM.ibm.JEmpower.applet.AppletFrame.run(AppletFrame.java:460)
at java.lang.Thread.run(Thread.java:736)
domdoc = (lotus.domino.Document)docBuilder.parse(inSource)
java.lang.NullPointerException
at LNUserPhoto.notesAppletInit(LNUserPhoto.java:124)
at lotus.domino.JAppletBase.init(Unknown Source)
at COM.ibm.JEmpower.applet.AppletFrame.run(AppletFrame.java:460)
at java.lang.Thread.run(Thread.java:736)
Начало xml:
<!--shcode--><pre><code class='xml'><?xml version='1.0'?>
<!DOCTYPE document SYSTEM 'xmlschemas/domino_8_5_2.dtd'>
<document xmlns='http://www.lotus.com/dxl' version='8.5' maintenanceversion='2.0'
replicaid='C325728A0024B208' form='TestRT'>[/CODE]Видимо и схему он ищет...
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='vaja'> lotus.domino.Document abDoc = abDB.getDocumentByUNID(docUnID);
DxlExporter dxlExporter = session.createDxlExporter();
String exportResult = dxlExporter.exportDxl(abDoc);
// Получить Document Builder Factory
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
// Включить проверку корректности и выключить пространства имен
factory.setValidating(true);
factory.setNamespaceAware(false);
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
DocumentBuilder docBuilder=null;
try {
docBuilder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
}
InputSource inSource = new InputSource();
inSource.setCharacterStream(new StringReader(exportResult));
org.w3c.dom.Document domdoc = null;
try {
domdoc = (org.w3c.dom.Document)docBuilder.parse(inSource);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
NodeList nodes = null;
nodes = ((org.w3c.dom.Document)domdoc).getElementsByTagName("<jpeg>");
String contentType = "image/jpeg";
Element tag = (Element)nodes.item(0);
exportResult = getCharacterDataFromElement(tag);
if (exportResult == "") {
nodes = ((org.w3c.dom.Document)domdoc).getElementsByTagName("<gif>");
contentType = "image/gif";
tag = (Element)nodes.item(0);
exportResult = getCharacterDataFromElement(tag);
}
if (exportResult == "") {
this.img = null;
this.jLabel.setText("Фотография отсутствует");
add(this.jLabel);
return;
}
public static String getCharacterDataFromElement(Element e) {
Node child = e.getFirstChild();
if ((child instanceof CharacterData)) {
CharacterData cd = (CharacterData)child;
return cd.getData();
}
return "";
}[/CODE]
на
Код:
domdoc = (org.w3c.dom.Document)docBuilder.parse(inSource);
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">java.io.FileNotFoundException: C:\Program Files\IBM\Lotus\Notes\framework\xmlschemas\domino_8_5_2.dtd (Системе не удается найти указанный путь.)</div></div><div class="sp-body"><div class="sp-content"> at java.io.FileInputStream.<init>(FileInputStream.java:112)
at java.io.FileInputStream.<init>(FileInputStream.java:72)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.jav
a:161)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at LNUserPhoto.notesAppletInit(LNUserPhoto.java:112)
at lotus.domino.JAppletBase.init(Unknown Source)
at COM.ibm.JEmpower.applet.AppletFrame.run(AppletFrame.java:460)
at java.lang.Thread.run(Thread.java:736)
domdoc = (lotus.domino.Document)docBuilder.parse(inSource)
java.lang.NullPointerException
at LNUserPhoto.notesAppletInit(LNUserPhoto.java:124)
at lotus.domino.JAppletBase.init(Unknown Source)
at COM.ibm.JEmpower.applet.AppletFrame.run(AppletFrame.java:460)
at java.lang.Thread.run(Thread.java:736)
Начало xml:
<!--shcode--><pre><code class='xml'><?xml version='1.0'?>
<!DOCTYPE document SYSTEM 'xmlschemas/domino_8_5_2.dtd'>
<document xmlns='http://www.lotus.com/dxl' version='8.5' maintenanceversion='2.0'
replicaid='C325728A0024B208' form='TestRT'>[/CODE]Видимо и схему он ищет...