невозможно прочитать "/" на устройстве - PullRequest
1 голос
/ 16 марта 2012

Я обрабатываю 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-символ, прежде чем я передам ее.

Ответы [ 2 ]

1 голос
/ 16 марта 2012

Если мы говорим о текстовом узле, вы пробовали Node getNodeValue()?

public static String getCharacterDataFromElement(Element e)
{
    Node child = e.getFirstChild();
    return child.getNodeValue();
}

Документация: http://docs.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/Node.html#getNodeValue%28%29

0 голосов
/ 16 марта 2012

Вот как теперь выглядит новый метод:

public static String getCharacterDataFromElement(Element e) {
    return e.getTextContent();
  }

На данный момент это работает.Я не знаю, как долго, но надеюсь, пока я не решу поступить правильно, перебрать дочерние узлы и объединить строковые значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...