的字符串的方法来进行搜索的字符串值XML值以下如何读取使用我在寻找一种方法的Java
<Test>
<Name>XYZ</Name>
<City>London</City>
</Test>
注意标签不会重复。
上述内容存储在字符串中。我想写一个Java方法,它的确是这样的:
tagvalue = getvalue(<TagName>)
for example tagvalue=getvalye(Name)
另外,我想这将返回根标签(从字符串1标签)的方法即它应该返回。
我知道Java解析器和DOM可以完成这项任务,但我不想使用它们。我可以简单地通过字符串操作方法吗?或者其他一些方法?
该解决方案在尝试如下:
//Method Call
String tag_value = getvalue(databuffer,"Name");
//Method
private String getvalue(String Content, String Tagname)
{
if (Content.contains("<"+Tagname+">"))
{
if(Content.contains("</"+Tagname+">"))
{
//How do I get Tag value here?
return Tagvalue;
}
}
}
另一种解决方案正试图为:
//method
private String getvalue(String Content, String Tagname)
{
//<Name>XYZ</Name>
int Starttag = Content.indexOf("<"+Tagname+">");//Returns 0
int Endtag = Content.indexOf("</"+Tagname+">");//Returns 9
//How to find the total length of <Starttag> so that I can subtract it with the index of Endtag to get the value?
return ;
}
我能得到任何帮助,任何人吗?
// 我已经更新了我的问题在元素名称命名空间...
输入文件看起来像下面
<ns:Test>
<ns:Name>XYZ</ns:Name>
<ns:City>London</ns:City>
</ns:Test>
注:我不知道该命名空间那会来吗?它可能是ns或np ...任何..如何处理?我知道的一件事是分隔符将是“:”
是否可以使用字符串方法来简单地忽略元素名称中的名称空间以获取以下逻辑中的元素值?
方法调用: 字符串elementvalue = getElementvalue(DataBuffer中, “姓名”)
方法:
public String getvalue(String buffer, String tagname)
{
String startTag, endTag,elementdata = null;
int startposition,endposition;
try
{
startTag = "<"+ tagname + ">";
endTag = "</"+ tagname + ">";
startposition = buffer.indexOf(startTag);
startposition = startposition + startTag.length();
endposition = buffer.indexOf(endTag);
elementdata = buffer.substring(startposition, endposition);
}
return elementdata;
}
让我知道如果有人能帮助我吗?
您可以用串读做,递归可能是最好的:读元素的开始,发现元素的结束 ,并递归地做同样的子标签。 –
jedison
你能告诉我们你写的代码来尝试和实现的要求 – user2881767
'我知道Java解析器和DOM可以完成这项任务,但我不想使用它们'为什么你不想使用库你的解析工作? –