パーサー作り直し

This commit is contained in:
r-ca 2024-01-08 12:14:23 +09:00
parent 59ba2cdcfc
commit 6e514b216a
No known key found for this signature in database
GPG Key ID: 6A72911AC73464A9
2 changed files with 10 additions and 15 deletions

View File

@ -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);
}

View File

@ -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);