"&&"
当 XML 文件包含在节点的属性值中时,它无法解析。
XML 文件:
<?xml version="1.0" encoding="UTF-8" ?>
<test version="0.0.3" >
<SFTP ipaddress="12.12.12.12" port="22" uname="abc" pwd="abc&&" path="/testdev" />
</test>
当使用pwd="abc&&"时它会给我这样的错误,如果我不使用特殊字符而不是它的工作正常。
错误 :
At line 3, column 62: not well-formed (invalid token)
org.apache.harmony.xml.ExpatParser$ParseException: At line 3, column 62: not well-formed (invalid token)
at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:515)
at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:474)
at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:321)
at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:279)
at com.test.bl.ConfigurationParser.parseFile(ConfigurationParser.java:61)
at com.test.ui.LoginActivity$ConfigurationXMLParseOperation.doInBackground(LoginActivity.java:209)
at com.test.ui.LoginActivity$ConfigurationXMLParseOperation.doInBackground(LoginActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856)
代码 :
public void parseFile(final InputStream inputStream) throws ParserConfigurationException,
SAXException, IOException {
try {
final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
final SAXParser saxParser = saxParserFactory.newSAXParser();
final XMLReader xmlReader = saxParser.getXMLReader();
xmlReader.setContentHandler(this);
xmlReader.parse(new InputSource(inputStream));
} catch (ParserConfigurationException e) {
Logger.e(TAG, e.getMessage(), e);
} catch (SAXException e) {
Logger.e(TAG, e.getMessage(), e);
} catch (IOException e) {
Logger.e(TAG, e.getMessage(), e);
}
}
@Override
public void startElement(final String uri, final String localName, final String qName,
final Attributes attributes) throws SAXException {
mElementStart = true;
if (localName.equals(null)) {
Logger.i(TAG, "Devices xml file is empty");
}
tempValue = "";
if (localName.equalsIgnoreCase(mSFTPParseNodeString)) {
sftpConfiguration = new SFTPConfiguration();
sftpConfiguration.mSftpIp = attributes.getValue(mSFTPIpParseNodeString);
sftpConfiguration.mRemotePath = attributes.getValue(mSFTPPathParseNodeString);
sftpConfiguration.mSftpPort = Integer.parseInt(attributes
.getValue(mSFTPPortParseNodeString));
sftpConfiguration.mUserName = attributes.getValue(mSFTPUserNameParseNodeString);
sftpConfiguration.mUserPassword = attributes.getValue(mSFTPPasswordParseNodeString);
}
}
请帮助我并给我解决方案我如何解析这个值并在我的代码中使用。
谢谢