protected void index(XMLEvent event) throws XMLStreamException
{
final Location location = event.getLocation();
try
{
if (event instanceof EndDocument)
{
if (null != context)
trackContext(event);
if (null != formatter)
{
formatter.end();
conveyFormatted();
}
for (XMLEvent resumed : deferred)
super.add(resumed);
super.add(event);
}
else if (event instanceof EndElement && null != context && context.isEmpty())
{
EndElement close = (EndElement)event;
if (!((StartElement)origin).getName().equals(close.getName()))
throw new IllegalStateException("Unclosed " + describeEvent(origin) + ' '
+ describeLocation(origin.getLocation()));
endContext();
if (null != formatter)
{
formatter.closeItem(event);
conveyFormatted();
}
deferred.add(event);
}
else if (null == context)
{
String id = null;
if (null != formatter && formatter.accept(event))
{
event = assignIdToElement((StartElement)event);
id = ((StartElement)event).getAttributeByName(ID_ATTR_QNAME).getValue();
}
deferred.add(event);
if (null != id)
{
XMLEventFactory eventFactory = getXMLEventFactory();
Set<Attribute> attrs = Collections.singleton(
eventFactory.createAttribute("name", id)
);
deferred.add(eventFactory.createStartElement(
DEFAULT_NS_PREFIX,
NULL_NS_URI,
"a",
attrs.iterator(),
Collections.EMPTY_SET.iterator()));
deferred.add(eventFactory.createCharacters(" "));
deferred.add(eventFactory.createEndElement(DEFAULT_NS_PREFIX, NULL_NS_URI, "a"));
if (null != formatter)
{
formatter.openItem(event, id);
conveyFormatted();
}
enterContext(event);
}
}
else // null != context
{
trackContext(event);
deferred.add(event);
if (null != formatter)
{
formatter.addContent(event);
conveyFormatted();
}
}
}
catch (RuntimeException error)
{
throw new XMLStreamException(error.getLocalizedMessage(), location, error);
}
}
Transformer.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:HTMLtoc
作者:
评论列表
文章目录