package org.fanhongtao.tools.xmlreader;
import java.util.HashMap;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
public class NamespaceStringHandler extends StringHandler
{
private HashMap<String, String> uriMap = new HashMap<String, String>();
@Override
public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException
{
if (!newLine)
{
sb.append(CRLF);
}
indent();
level++;
sb.append('<');
sb.append(name);
addAttributes(attributes);
// 增加新的名字空间
if (uri.length() != 0) // 有可能元素没有对应的名字空间
{
String value = uriMap.get(uri);
if (value == null) // 新的名字空间
{
uriMap.put(uri, uri);
int index = name.lastIndexOf(localName);
String nameSpace = name.substring(0, index - 1);
sb.append(" xmlns:");
sb.append(nameSpace);
sb.append("=\"");
sb.append(uri);
sb.append('"');
}
}
sb.append('>');
newLine = false;
}
}