diff options
author | Bernard Normier <bernard@zeroc.com> | 2006-03-31 04:31:07 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2006-03-31 04:31:07 +0000 |
commit | b99e44c5374710b3dfe86800e8488baa425e1862 (patch) | |
tree | 6d9b9c512ba0f5c5e7b15ccdc40db2bf2dad9673 /java/src/IceGridGUI/XMLWriter.java | |
parent | Added --server option to icegridadmin (diff) | |
download | ice-b99e44c5374710b3dfe86800e8488baa425e1862.tar.bz2 ice-b99e44c5374710b3dfe86800e8488baa425e1862.tar.xz ice-b99e44c5374710b3dfe86800e8488baa425e1862.zip |
Added ability to read XML file by execing icegridadmin
Diffstat (limited to 'java/src/IceGridGUI/XMLWriter.java')
-rwxr-xr-x | java/src/IceGridGUI/XMLWriter.java | 61 |
1 files changed, 56 insertions, 5 deletions
diff --git a/java/src/IceGridGUI/XMLWriter.java b/java/src/IceGridGUI/XMLWriter.java index d3e44aa2681..3fb3d2edf7d 100755 --- a/java/src/IceGridGUI/XMLWriter.java +++ b/java/src/IceGridGUI/XMLWriter.java @@ -46,12 +46,9 @@ public class XMLWriter public void writeElement(String name, String content) throws IOException
{
- //
- // TODO: deal with ]]> content
- //
_writer.write(_indent);
- _writer.write("<" + name + "><![CDATA[" + content
- + "]]></" + name + ">" + _newline);
+ _writer.write("<" + name + ">" + escape(content) +
+ "</" + name + ">" + _newline);
}
public void writeStartTag(String name, java.util.List attributes)
@@ -111,6 +108,60 @@ public class XMLWriter _indent = _indent.substring(3);
}
+ private String
+ escape(String input)
+ {
+ String v = input;
+
+ //
+ // Find out whether there is a reserved character to avoid
+ // conversion if not necessary.
+ //
+ final String allReserved = "<>'\"&";
+ boolean hasReserved = false;
+ char[] arr = input.toCharArray();
+ for(int i = 0; i < arr.length; i++)
+ {
+ if(allReserved.indexOf(arr[i]) != -1)
+ {
+ hasReserved = true;
+ break;
+ }
+ }
+ if(hasReserved)
+ {
+ //
+ // First convert all & to &
+ //
+ if(v.indexOf('&') != -1)
+ {
+ v = v.replaceAll("&", "&");
+ }
+
+ //
+ // Next convert remaining reserved characters.
+ //
+ if(v.indexOf('>') != -1)
+ {
+ v = v.replaceAll(">", ">");
+ }
+ if(v.indexOf('<') != -1)
+ {
+ v = v.replaceAll("<", "<");
+ }
+ if(v.indexOf('\'') != -1)
+ {
+ v = v.replaceAll("'", "'");
+ }
+ if(v.indexOf('"') != -1)
+ {
+ v = v.replaceAll("\"", """);
+ }
+ }
+ return v;
+ }
+
+
private Writer _writer;
private String _indent = "";
private static String _newline = System.getProperty("line.separator");
|