Я обрабатываю XML-документ и считываю значение из него. Одно из значений, которое я читаю, имеет / в нем. Вот как выглядит значение: M/S John Smith At 4
. Я проводил некоторые тесты на эмуляторе, и он показывал правильное значение. Теперь я развернул свое приложение на моем Samsung Galaxy S2 device
, и процесс неправильно читает значение. Это просто показывает M в поле значения для этого имени.
Я думаю, это может быть потому, что / это особый характер. Есть ли что-то, что я могу сделать, чтобы избежать специального символа в значении и прочитать все имя как есть?
P.S .: Я не опытный Java-разработчик, поэтому этот вопрос может показаться вам глупым, но если у вас есть решение, пожалуйста, дайте мне знать.
Когда я печатаю значение в окне консоли, оно выглядит так, как оно указано в xmlDocument после его анализа: M/S John Smith At 4
Эта функция читает значение:
public static String getCharacterDataFromElement(Element e) {
Node child = e.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
}
return "";
}
В функции adove cd.getdata()
возвращает M
После дополнительной отладки:
Когда я вижу элемент в окне просмотра, для других имен у него только один дочерний элемент. Но для элемента, который содержит / он получил 3 детей. Он нарезает струнный буфер bcz, который он видит / там. Я предполагаю, что либо мне нужно изменить приведенную ниже функцию и подготовить все дочерние узлы, либо мне нужно использовать escape-символ, прежде чем я передам ее.