私はJAVAが初めてで、テキストファイルを読み込んでXMLに書きたいと思っています。ここに私の入力があります:
- R.-J. Roe,J.Appl.Phys.36、2024(1965)。
および出力ですが、次のとおりです。
<ref id="1">
<label>1</label>
<citation-alternatives>
<mixed-citation>R.-J. Roe, J. Appl.Phys. 36, 2024 (1965).</mixed-citation>
</citation-alternatives>
</ref>
多くの場合、この入力は次のようにスペースなしで 2 行に渡されます。
R.-J. 卵、
J.Appl.Phys.36、2024(1965)。
出力は次のようになります。
<ref id="1">
<label>1</label>
<citation-alternatives>
<mixed-citation>R.-J. Roe, </mixed-citation>
</citation-alternatives>
</ref>
<ref id="1">
<label>1</label>
<citation-alternatives>
<mixed-citation>J. Appl.Phys. 36, 2024 (1965).</mixed-citation>
</citation-alternatives>
</ref>
今私の質問は、最初の出力のようになるために、この 2 行を 1 つの攪拌としてどのように読み取ることができるかということです。ここに私のコードがあります:
try {
String strLine;
String num="";
String mix="";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
// Back element
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("Back");
doc.appendChild(rootElement);
// ref-list element
Element reflist = doc.createElement("ref-list");
rootElement.appendChild(reflist);
while( (strLine = br.readLine()) != null)
{
if (strLine.equals("")) {
continue;
}
int dotIndex = strLine.indexOf(".");
num = strLine.substring(0,dotIndex);
mix = strLine.substring(dotIndex+2,strLine.length());
// ref element
Element ref= doc.createElement("ref");
reflist.appendChild(ref);
// set attribute of ref element
Attr attr = doc.createAttribute("id");
attr.setValue(num);
ref.setAttributeNode(attr);
// label element
Element label = doc.createElement("label");
ref.appendChild(label);
label.setTextContent(num);
// citation-alternatives element
Element citationalternatives = doc.createElement("citation-alternatives");
ref.appendChild(citationalternatives);
// mixed-citation element
Element mixedcitation = doc.createElement("mixed-citation");
citationalternatives.appendChild(mixedcitation);
mixedcitation.setTextContent(mix);
}