我正在尝试使用Java方法从数据库中获取以下xml,但出现错误
用于解析xml的代码
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource(new ByteArrayInputStream(cond.getBytes()));
Document doc = db.parse(is);
Element elem = doc.getDocumentElement();
// here we expect a series of <data><name>N</name><value>V</value></data>
NodeList nodes = elem.getElementsByTagName("data");
TableID jobId = new TableID(_processInstanceId);
Job myJob = Job.queryByID(_clientContext, jobId, true);
if (nodes.getLength() == 0) {
log(Level.DEBUG, "No data found on condition XML");
}
for (int i = 0; i < nodes.getLength(); i++) {
// loop through the <data> in the XML
Element dataTags = (Element) nodes.item(i);
String name = getChildTagValue(dataTags, "name");
String value = getChildTagValue(dataTags, "value");
log(Level.INFO, "UserData/Value=" + name + "/" + value);
myJob.setBulkUserData(name, value);
}
myJob.save();
数据
<ContactDetails>307896043</ContactDetails>
<ContactName>307896043</ContactName>
<Preferred_Completion_Date>
</Preferred_Completion_Date>
<service_address>A-End Address: 1ST HELIERST HELIERJT2 3XP832THE CABLES 1 POONHA LANEST HELIER JE JT2 3XP</service_address>
<ServiceOrderId>315473043</ServiceOrderId>
<ServiceOrderTypeId>50</ServiceOrderTypeId>
<CustDesiredDate>2013-03-20T18:12:04</CustDesiredDate>
<OrderId>307896043</OrderId>
<CreateWho>csmuser</CreateWho>
<AccountInternalId>20100333</AccountInternalId>
<ServiceInternalId>20766093</ServiceInternalId>
<ServiceInternalIdResets>0</ServiceInternalIdResets>
<Primary_Offer_Name action='del'>MyMobile Blue £44.99 [12 month term]</Primary_Offer_Name>
<Disc_Reason action='del'>8</Disc_Reason>
<Sup_Offer action='del'>80000257</Sup_Offer>
<Service_Type action='del'>A-01-00</Service_Type>
<Priority action='del'>4</Priority>
<Account_Number action='del'>0</Account_Number>
<Offer action='del'>80000257</Offer>
<msisdn action='del'>447797142520</msisdn>
<imsi action='del'>234503184</imsi>
<sim action='del'>5535</sim>
<ocb9_ARM action='del'>false</ocb9_ARM>
<port_in_required action='del'>
</port_in_required>
<ocb9_mob action='del'>none</ocb9_mob>
<ocb9_mob_BB action='del'>
</ocb9_mob_BB>
<ocb9_LandLine action='del'>
</ocb9_LandLine>
<ocb9_LandLine_BB action='del'>
</ocb9_LandLine_BB>
<Contact_2>
</Contact_2>
<Acc_middle_name>
</Acc_middle_name>
<MarketCode>7</MarketCode>
<Acc_last_name>Port_OUT</Acc_last_name>
<Contact_1>
</Contact_1>
<Acc_first_name>.</Acc_first_name>
<EmaiId>
</EmaiId>
错误
org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
我读了一些线程,这是因为xml中有一些特殊字符。如何解决这个问题?
如何解决这个问题?
使用正确的字符编码读取数据。错误消息表示您正在尝试以UTF-8格式读取数据(故意或因为这是未指定的XML文件的默认编码<?xml version="1.0" encoding="somethingelse"?>
),但实际上它采用的是其他编码,例如ISO-8859-1或Windows-1252。
为了能够为您提供建议,我必须查看您当前用于读取XML的代码。
问题内容: 我有一个包含阿拉伯字符的xml文件。尝试解析文件时,出现异常,MalformedByteSequenceException:2字节UTF-8序列的无效字节2。我使用POI DOM来解析文档。 日志是 该异常仅在Windows Machine中出现,在Linux Machine中不出现。我该如何解决此问题。任何建议都应是可取的。 问题答案: 我已解决问题,方法是使用UTF8格式创建XML
问题内容: 当(杰克逊,在这种情况下)JSON引擎尝试解析一些未使用UTF-8编码的JSON时,会发生此错误。 如何告诉引擎它应该期望与UTF-8不同的东西,例如UTF-16? 错误日志: 问题答案: JSON数据必须编码为UTF-8,UTF-16或UTF-32。JSON解码器可以通过检查字节流的前四个八位字节来确定编码: 听起来好像服务器正在以某种非法编码(ISO-8859-1,Windows-
在Java中,我向JSON对象添加一些属性,并将这些值发送到HTTPS URL(REST API)。服务器抛出一些错误,如“无效的utf-8开始字节0xb0”。下面是我的代码:
我使用jMeter通过post请求向测试服务器发送json。 以下请求总是失败: 响应数据中的错误消息为: 请求根本不发送到服务器。其他请求(例如将类别中的值替换为其他有效类别,如“Delis”)工作完美。 我猜这是一个与“Café”有关的编码问题,但我不知道如何解决它。知道吗?谢谢
我有一个latin1_swedish_ci数据库,其中包含UTF-8字节字符,显示为%c5%a1,%c4%8d,... 我已经将数据库和表从latin1转换为utf8,但我仍然需要修复UTF-8字节字符。 MySQL默认字符集: 我尝试了MySQL函数没有成功: 我真的需要帮助!谢谢.
我试图从csv文件中读取所有列。 错误:UnicodeDecodeError:“utf-8”编解码器无法解码位置15中的字节0x96:无效的开始字节