📄 xml.java
字号:
/* kXML
*
* The contents of this file are subject to the Enhydra Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License
* on the Enhydra web site ( http://www.enhydra.org/ ).
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific terms governing rights and limitations
* under the License.
*
* The Initial Developer of kXML is Stefan Haustein. Copyright (C)
* 2000, 2001 Stefan Haustein, D-46045 Oberhausen (Rhld.),
* Germany. All Rights Reserved.
*
* Contributor(s): Paul Palaszewski, Wilhelm Fitzpatrick,
* Eric Foster-Johnson
*
* */
package org.kxml;
/** A class containing several static xml methods, mainly for escaping
special characters like angle brakets and quotes. This class
contains also some (partially shared) constants for the parser and
kDOM. */
public class Xml
{
public static final String NO_NAMESPACE = "";
/** XmlReader return value before the first call to next or skip */
public static final int START_DOCUMENT = 0;
/** Integer constant for comments */
public static final int COMMENT = 1;
/** Integer constant for doctype */
public static final int DOCTYPE = 2;
/** Integer constant for elements */
public static final int ELEMENT = 4;
/** Integer constant returned by ParseEvent.getType if the end of
the document has been reached */
public static final int END_DOCUMENT = 8;
/** Integer constant assigned to an EndTag parse event */
public static final int END_TAG = 16;
/** Integer constant assigned to a processing instruction */
public static final int PROCESSING_INSTRUCTION = 32;
/** Integer constant assigned to StartTag parse event */
public static final int START_TAG = 64;
/** Integer constant assigned to text nodes and events */
public static final int TEXT = 128;
/** Integer constant for whitespace nodes and events */
public static final int WHITESPACE = 256;
/** minimum escaping, quotes are not escaped */
public static final int ENCODE_MIN = 0;
/** forces escaping of quotes */
public static final int ENCODE_QUOT = 1;
/** forces escaping of all character coded greater than 127 */
public static int ENCODE_128 = 2;
/** Constant identifying wap extension events */
public static final int WAP_EXTENSION = 1024;
/** convenience method for encode (String raw, ENCODE_MIN) */
public static String encode(String raw)
{
return encode(raw, ENCODE_MIN);
}
/* encodes an attribute with the given name and value. A single
space is inserted before the name of the attribute
public static String encodeAttr (String name, String value) {
return " "+name+"=\"" + encode (value, ENCODE_QUOT) + "\"";
}
*/
/** encodes a string escaping less than etc. */
public static String encode(String raw, int flags)
{
int len = raw.length();
StringBuffer cooked = new StringBuffer(raw.length());
for (int i = 0; i < len; i++)
{
char c = raw.charAt(i);
switch (c)
{
case '<':
cooked.append("<");
break;
case '>':
cooked.append(">");
break;
case '&':
cooked.append("&");
break;
case '"':
{
if ( (flags & ENCODE_QUOT) != 0)
{
cooked.append(""");
}
else
{
cooked.append('"');
}
}
break;
default:
if (c >= 128 && ( (flags & ENCODE_128) != 0))
{
cooked.append("&#" + ( (int) c) + ";");
}
else
{
cooked.append(c);
}
}
}
return cooked.toString();
}
/* quotes a string by adding quote chars at the beginning
and the end and escaping all quotes and XML special
chars contained in the string
public static String quote (String q) {
return "\"" + encode (q, ENCODE_QUOT) + "\"";
}
*/
/* like String.trim, but additionally all groups of one or more
whitespace characters in the string are replaced by a single
space (0x040)
public static String trim (String s) {
char [] buf = new char [s.length ()];
boolean ignoring = false;
int targetPos = 0;
for (int i = 0; i < s.length (); i++) {
char c = s.charAt (i);
if (c <= ' ')
ignoring = true;
else {
if (ignoring) {
if (targetPos != 0) buf [targetPos++] = ' ';
ignoring = false;
}
buf [targetPos++] = c;
}
}
return new String (buf, 0, targetPos);
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -