У меня возникла проблема с удалением пробелов в полях значений в XML-данных.Удалить пробелы в XML-полях с помощью Java
например:
Входной
<?xml version="1.0"?>
<ns:myOrder xmlns:ns="http://w3schools.com/BusinessDocument" xmlns:ct="http://something.com/CommonTypes">
<MessageHeader>
<ct:ID>i7 </ct:ID>
<ct:ID>i7 </ct:ID>
<ct:ID>i7 </ct:ID>
<ct:ID>i7 </ct:ID>
<ct:Name> Company Name </ct:Name>
</MessageHeader>
</ns:myOrder>
Ожидаемый результат:
<?xml version="1.0"?>
<ns:myOrder xmlns:ns="http://w3schools.com/BusinessDocument" xmlns:ct="http://something.com/CommonTypes">
<MessageHeader>
<ct:ID>i7</ct:ID>
<ct:ID>i7</ct:ID>
<ct:ID>i7</ct:ID>
<ct:ID>i7</ct:ID>
<ct:Name>Company Name</ct:Name>
</MessageHeader>
</ns:myOrder>
Я попытался с ниже код
public static String getTrimmedXML(String rawXMLFilename) throws Exception
{
BufferedReader in = new BufferedReader(new FileReader(rawXMLFilename));
String str;
String trimmedXML = null;
while ((str = in.readLine()) != null)
{
String str1 = str;
if (str1.length()>0)
{
str1 = str1.trim();
if(str1.charAt(str1.length()-1) == '>')
{
trimmedXML = trimmedXML + str.trim();
}
else
{
trimmedXML = trimmedXML + str;
}
}
}
in.close();
return trimmedXML.substring(4);
}
Я не могу удалить эти пробелы. Пожалуйста, дайте мне знать, где я буду неправильно
С уважением, Мониш
'trim' только удаляет пробелы в начале и в конце строки (в вашем случае строка). Попробуйте разобрать XML, чтобы удалить пробелы и переписать XML. – Jens
Функция xpath 'normalize-space' будет выполнять эту обрезку. Вы можете использовать [измененное 'Identity transform'] (http://en.wikipedia.org/wiki/Identity_transform), чтобы сделать это в XSL. – StuartLC
Если один из ответов помог вам решить проблему, вы можете проверить галочку на нем. Это также дает вам дополнительную репутацию. –