当前位置: 首页>>代码示例>>Java>>正文


Java XMLStreamWriter.writeCData方法代码示例

本文整理汇总了Java中javax.xml.stream.XMLStreamWriter.writeCData方法的典型用法代码示例。如果您正苦于以下问题:Java XMLStreamWriter.writeCData方法的具体用法?Java XMLStreamWriter.writeCData怎么用?Java XMLStreamWriter.writeCData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在javax.xml.stream.XMLStreamWriter的用法示例。


在下文中一共展示了XMLStreamWriter.writeCData方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: writeCharactersOrCDATA

import javax.xml.stream.XMLStreamWriter; //导入方法依赖的package包/类
/**
 * Write the given string to the given writer, using either
 * writeCharacters or, if there are more than a few less than signs in
 * the string (e.g. if it is an XML fragment itself), write it with
 * writeCData. This method properly handles the case where the string
 * contains other CDATA sections - as a CDATA section cannot contain
 * the CDATA end marker <code>]]></code>, we split the output CDATA
 * at any occurrences of this marker and write the marker using a
 * normal writeCharacters call in between.
 * 
 * @param xsw the writer to write to
 * @param string the string to write
 * @throws XMLStreamException
 */
static void writeCharactersOrCDATA(XMLStreamWriter xsw, String string)
        throws XMLStreamException {
  if(containsEnoughLTs(string)) {
    Matcher m = CDATA_END_PATTERN.matcher(string);
    int startFrom = 0;
    while(m.find()) {
      // we found a CDATA end marker, so write everything up to the
      // marker as CDATA...
      xsw.writeCData(string.substring(startFrom, m.start()));
      // then write the marker as characters
      xsw.writeCharacters("]]>");
      startFrom = m.end();
    }

    if(startFrom == 0) {
      // no "]]>" in the string, the normal case
      xsw.writeCData(string);
    }
    else if(startFrom < string.length()) {
      // there is some trailing text after the last ]]>
      xsw.writeCData(string.substring(startFrom));
    }
    // else the last ]]> was the end of the string, so nothing more to
    // do.
  }
  else {
    // if fewer '<' characters, just writeCharacters as normal
    xsw.writeCharacters(string);
  }
}
 
开发者ID:GateNLP,项目名称:gate-core,代码行数:45,代码来源:DocumentStaxUtils.java

示例2: serializeNode

import javax.xml.stream.XMLStreamWriter; //导入方法依赖的package包/类
/**
 * Traverses a DOM node and writes out on a streaming writer.
 *
 * @param node
 * @param writer
 */
public static void serializeNode(Element node, XMLStreamWriter writer) throws XMLStreamException {
    writeTagWithAttributes(node, writer);

    if (node.hasChildNodes()) {
        NodeList children = node.getChildNodes();
        for (int i = 0; i < children.getLength(); i++) {
            Node child = children.item(i);
            switch (child.getNodeType()) {
                case Node.PROCESSING_INSTRUCTION_NODE:
                    writer.writeProcessingInstruction(child.getNodeValue());
                    break;
                case Node.DOCUMENT_TYPE_NODE:
                    break;
                case Node.CDATA_SECTION_NODE:
                    writer.writeCData(child.getNodeValue());
                    break;
                case Node.COMMENT_NODE:
                    writer.writeComment(child.getNodeValue());
                    break;
                case Node.TEXT_NODE:
                    writer.writeCharacters(child.getNodeValue());
                    break;
                case Node.ELEMENT_NODE:
                    serializeNode((Element) child, writer);
                    break;
                default: break;
            }
        }
    }
    writer.writeEndElement();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:38,代码来源:DOMUtil.java

示例3: writeAnyCell

import javax.xml.stream.XMLStreamWriter; //导入方法依赖的package包/类
/**
 * Writes out an XML cell based on coordinates and provided value
 * 
 * @param row
 *            the row index of the cell
 * @param col
 *            the column index
 * @param cellValue
 *            value of the cell, can be null for an empty cell
 * @param out
 *            the XML output stream
 * @param columns
 *            the Map with column titles
 */
private void writeAnyCell(final int row, final int col, final String cellValue, final XMLStreamWriter out,
		final Map<String, String> columns) {
	try {
		out.writeStartElement("cell");
		String colNum = String.valueOf(col);
		out.writeAttribute("row", String.valueOf(row));
		out.writeAttribute("col", colNum);
		if (columns.containsKey(colNum)) {
			out.writeAttribute("title", columns.get(colNum));
		}
		if (cellValue != null) {
			if (cellValue.contains("<") || cellValue.contains(">")) {
				out.writeCData(cellValue);
			} else {
				out.writeCharacters(cellValue);
			}
		} else {
			out.writeAttribute("empty", "true");
		}
		out.writeEndElement();

	} catch (XMLStreamException e) {
		e.printStackTrace();
	}

}
 
开发者ID:Stwissel,项目名称:Excel2XML,代码行数:41,代码来源:E2xCmdline.java

示例4: objectPropToNode

import javax.xml.stream.XMLStreamWriter; //导入方法依赖的package包/类
/**
 * 对象属性转换为xml标签
 * 
 * @param pd
 * @param xml
 * @throws NoSuchMethodException
 * @throws InvocationTargetException
 * @throws IllegalAccessException
 * @throws XMLStreamException
 */
private static void objectPropToNode(Object bean, XMLStreamWriter xml)
		throws IllegalAccessException, InvocationTargetException, NoSuchMethodException, XMLStreamException {
	if (bean == null) {
		return;
	}

	LinkedHashMap<String, Field> fields = new LinkedHashMap<String, Field>();
	getFields(bean.getClass(), fields);
	if (fields == null || fields.isEmpty()) {
		return;
	}
	for (Entry<String, Field> fieldEntry : fields.entrySet()) {
		String name = fieldEntry.getKey();
		Object value = null;
		try {
			value = PropertyUtils.getProperty(bean, name);
		} catch (Exception ex) {
		}
		if (value == null) {// 忽略空值
			continue;
		}

		String tag = fieldEntry.getValue().isAnnotationPresent(SerializedName.class) ? name
				: StringUtils.capitalize(name);// 首字母大写做为XML标签名,注解为SerializedName的不做处理

		Class<?> type = value.getClass();
		boolean isPrimitive = type.isPrimitive() || type.isEnum() || value instanceof String
				|| value instanceof Number;// 是否基本类型boolean、byte、char、short、int、long、float
		// 和 double 或 Enum
		boolean isArray = type.isArray();// 是否数组

		if (!isArray) {// 非数组型属性
			xml.writeStartElement(tag);// 写开始标签
			if (isPrimitive) {// 基本类型直接写内容
				xml.writeCData(String.valueOf(value));
			} else {
				objectPropToNode(value, xml);// 复合类型,递归解析
			}
			xml.writeEndElement();// 写结束标签
		} else {// 数组型属性
			int length = Array.getLength(value);
			for (int i = 0; i < length; i++) {
				Object val = Array.get(value, i);
				if (val == null) {
					continue;
				}
				xml.writeStartElement(tag);// 写开始标签
				if (isPrimitive) {// 基本类型
					xml.writeCData(String.valueOf(val));
				} else {// 复合类型
					objectPropToNode(val, xml);
				}
				xml.writeEndElement();// 写结束标签
			}
		}

	}
}
 
开发者ID:AlexLee-CN,项目名称:weixin_api,代码行数:69,代码来源:XmlUtil.java


注:本文中的javax.xml.stream.XMLStreamWriter.writeCData方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。