mirror of
https://github.com/lacerta-doc/Lacerta.git
synced 2024-11-22 07:53:15 +00:00
パーサー作り直し
This commit is contained in:
parent
59ba2cdcfc
commit
6e514b216a
|
@ -1,12 +1,13 @@
|
|||
package one.nem.lacerta.utils;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import one.nem.lacerta.model.document.internal.XmlMetaModel;
|
||||
|
||||
public interface XmlMetaParser {
|
||||
|
||||
// ドキュメントのメタデータをXMLファイルから読み込む
|
||||
XmlMetaModel parse(String xml);
|
||||
// ドキュメントのメタデータをXMLファイルに書き込む
|
||||
String serialize(XmlMetaModel meta);
|
||||
XmlMetaModel deserialize(Document document);
|
||||
|
||||
Document serialize(XmlMetaModel meta);
|
||||
|
||||
}
|
||||
|
|
|
@ -23,12 +23,8 @@ public class XmlMetaParserImpl implements XmlMetaParser{
|
|||
}
|
||||
|
||||
@Override
|
||||
public XmlMetaModel parse(String xml) {
|
||||
public XmlMetaModel deserialize(Document document) {
|
||||
try {
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder builder = factory.newDocumentBuilder();
|
||||
Document document = builder.parse(new InputSource(new StringReader(xml)));
|
||||
|
||||
Element rootElement = document.getDocumentElement();
|
||||
|
||||
XmlMetaModel meta = new XmlMetaModel();
|
||||
|
@ -53,11 +49,10 @@ public class XmlMetaParserImpl implements XmlMetaParser{
|
|||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null; // TODO-rca: 例外
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String serialize(XmlMetaModel meta) {
|
||||
public Document serialize(XmlMetaModel meta) {
|
||||
try {
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder builder = factory.newDocumentBuilder();
|
||||
|
@ -82,13 +77,12 @@ public class XmlMetaParserImpl implements XmlMetaParser{
|
|||
|
||||
document.appendChild(rootElement);
|
||||
|
||||
return document.toString();
|
||||
return document;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null; // TODO-rca: 例外
|
||||
return null;
|
||||
}
|
||||
|
||||
// Internal Methods
|
||||
private Element appendElement(Document document, Element rootElement, String name, String textContent) {
|
||||
Element element = document.createElement(name);
|
||||
|
|
Loading…
Reference in New Issue
Block a user