XML文書内に改行を含めたい。
2007/07/24
java
xml
XMLファイルに改行を含めたい場合、文字参照?を使用します。
具体的には、
スペース文字(#x20)
改行(#xA)
タブ(#x9)
復帰+改行(#xD#xA)
復帰(#xD)
を使用するようですね。
それで、XMLには下記のように記述します。
<?xml version="1.0" encoding="UTF-8"?>
<a>
<b prop="スペース です。" />
<b prop="改行
です。" />
<b prop="タブ	です。" />
<b prop="復帰+改行
です。" />
<b prop="復帰
です。" />
</a>
<a>
<b prop="スペース です。" />
<b prop="改行
です。" />
<b prop="タブ	です。" />
<b prop="復帰+改行
です。" />
<b prop="復帰
です。" />
</a>
javaのプログラムを利用してパースします。
結果は、
nodename:[#text] nodevalue:[
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[スペース です。]
nodename:[#text] nodevalue:[
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[改行
です。]
nodename:[#text] nodevalue:[
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[タブ です。]
nodename:[#text] nodevalue:[
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[復帰+改行
です。]
nodename:[#text] nodevalue:[
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[復帰
です。]
nodename:[#text] nodevalue:[
]
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[スペース です。]
nodename:[#text] nodevalue:[
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[改行
です。]
nodename:[#text] nodevalue:[
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[タブ です。]
nodename:[#text] nodevalue:[
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[復帰+改行
です。]
nodename:[#text] nodevalue:[
]
nodename:[b] nodevalue:[null]
attr:[prop] attrvalue:[復帰
です。]
nodename:[#text] nodevalue:[
]
下記のコードを利用しました。
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class TestReadXml {
public static void main(String[] args) throws ParserConfigurationException,
SAXException, IOException {
a();
}
public static void println(String s) {
System.out.println(s);
}
public static void printNode(NodeList list) {
if (list == null)
return;
Node node;
for (int i = 0; (node = list.item(i)) != null; i++) {
println("nodename:[" + node.getNodeName() + "] nodevalue:[" + node.getNodeValue() + "]");
printAttr(node);
printNode(node.getChildNodes());
}
}
public static void printAttr(Node node) {
NamedNodeMap attrMap = node.getAttributes();
if(attrMap == null) return;
int attrs = attrMap.getLength();
for (int i = 0; i < attrs; i++) {
Node attr = attrMap.item(i);
println(" attr:[" + attr.getNodeName() + "] attrvalue:[" + attr.getNodeValue() + "]");
}
}
public static void a() throws ParserConfigurationException, SAXException,
IOException {
InputStream inputStream = TestReadXml.class
.getResourceAsStream("a.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(inputStream);
Element element = doc.getDocumentElement();
NodeList list = element.getChildNodes();
printNode(list);
}
}
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class TestReadXml {
public static void main(String[] args) throws ParserConfigurationException,
SAXException, IOException {
a();
}
public static void println(String s) {
System.out.println(s);
}
public static void printNode(NodeList list) {
if (list == null)
return;
Node node;
for (int i = 0; (node = list.item(i)) != null; i++) {
println("nodename:[" + node.getNodeName() + "] nodevalue:[" + node.getNodeValue() + "]");
printAttr(node);
printNode(node.getChildNodes());
}
}
public static void printAttr(Node node) {
NamedNodeMap attrMap = node.getAttributes();
if(attrMap == null) return;
int attrs = attrMap.getLength();
for (int i = 0; i < attrs; i++) {
Node attr = attrMap.item(i);
println(" attr:[" + attr.getNodeName() + "] attrvalue:[" + attr.getNodeValue() + "]");
}
}
public static void a() throws ParserConfigurationException, SAXException,
IOException {
InputStream inputStream = TestReadXml.class
.getResourceAsStream("a.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(inputStream);
Element element = doc.getDocumentElement();
NodeList list = element.getChildNodes();
printNode(list);
}
}
: