如何在java中读取字符串xml字符串?

Posted

技术标签:

【中文标题】如何在java中读取字符串xml字符串?【英文标题】:How do I read the string xml string in java? 【发布时间】:2021-05-13 02:04:11 【问题描述】:

我收到了来自 API 的响应,例如字符串 xml。如何从字符串 xml 中检索数据。 字符串类似于<string xmlns="http://tempuri.org/">500226#Mr Santosh Sarangi#TPCODL</string>

我只需要这个500226#Mr Santosh Sarangi#TPCODL 数据。我怎么做。我这样关注但无法获取数据:--

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource src = new InputSource();
src.setCharacterStream(new StringReader(inputLine1));

Document doc = builder.parse(src);

String age = doc.getElementsByTagName("http://tempuri.org/").item(0).getTextContent();
String name = doc.getDocumentElement().toString();;

【问题讨论】:

标签名为"string",而不是"http://tempuri.org/" 【参考方案1】:

XML 包含一个命名空间,因此最好启用命名空间感知。 如果您的所有 XML 都非常简单,您可以简单地从根元素中获取文本内容。根元素是文档的第一个子元素:

try 
  final String xmlString = "<string xmlns=\"http://tempuri.org/\">500226#Mr Santosh Sarangi#TPCODL</string>";
  System.out.println(xmlString);
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  factory.setNamespaceAware(true);
  DocumentBuilder builder = factory.newDocumentBuilder();
  StringReader reader = new StringReader(xmlString);
  InputSource source = new InputSource(reader);
  Document document = builder.parse(source);
  System.out.println(document.getFirstChild().getTextContent());
 catch(Exception e) 
  e.printStackTrace();

输出是:

<string xmlns="http://tempuri.org/">500226#Mr Santosh Sarangi#TPCODL</string>
500226#Mr Santosh Sarangi#TPCODL

【讨论】:

以上是关于如何在java中读取字符串xml字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Matlab中将字符串存储在xml中以从opencv读取它

如何在 C# 中从包含 XML 的字符串中读取数据?

读取在java中存储为字符串的xml [重复]

Raku vs. Perl5,出人意料的结果

如何从 android 中的 string.xml 读取值?

如何在 C# 中读取此 XML?