Java 请检查在我的android中不起作用的xpath
我使用eclipse,我想挑选节点mytag文本。我该怎么做才能得到它?我有以下代码:Java 请检查在我的android中不起作用的xpath,java,android,xpath,Java,Android,Xpath,我使用eclipse,我想挑选节点mytag文本。我该怎么做才能得到它?我有以下代码: XPath xpath = XPathFactory.newInstance().newXPath(); String expression = "/outertag/innertag/mytag/text()"; InputSource inputSource = new InputSource("http://www.anddev.or
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "/outertag/innertag/mytag/text()";
InputSource inputSource = new InputSource("http://www.anddev.org/images/tut/basic/parsingxml/example.xml");
NodeList nodes = null;
try {
nodes = (NodeList) xpath.evaluate(expression, inputSource, XPathConstants.NODESET);
} catch (XPathExpressionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int i=nodes.getLength();
我提到的材料是
现在,当我签入debug时,它会给节点提供非常复杂的内容,但没有一个是mytag文本——和dev.org rulez为了去掉这个,我应该怎么做?
谢谢
该网站中的xml文件(URL参数):
anddev.org rulez=)
结果我是1。但是节点不提供任何文本字符串。这是一个以m开头的“描述”列表。我只想把这段文字删掉。因为我真正需要解析的是一个内部网站,这是一个巨大的表。我需要根据每个类别存储该表中的数据。例如,一个文件包含名称和数学分数,另一个包含名称和物理
<TABLE border="2" frame="hsides" rules="groups"
summary="Code page support in different versions
of MS Windows.">
<CAPTION>CODE-PAGE SUPPORT IN MICROSOFT WINDOWS</CAPTION>
<COLGROUP align="center">
<COLGROUP align="left">
<COLGROUP align="center" span="2">
<COLGROUP align="center" span="3">
<THEAD valign="top">
<TR>
<TH>Code-Page<BR>ID
<TH>Name
<TH>ACP
<TH>OEMCP
<TH>Windows<BR>NT 3.1
<TH>Windows<BR>NT 3.51
<TH>Windows<BR>95
<TBODY>
<TR><TD>1200<TD>Unicode (BMP of ISO/IEC-10646)<TD><TD><TD>X<TD>X<TD>*
<TR><TD>1250<TD>Windows 3.1 Eastern European<TD>X<TD><TD>X<TD>X<TD>X
<TR><TD>1251<TD>Windows 3.1 Cyrillic<TD>X<TD><TD>X<TD>X<TD>X
<TR><TD>1252<TD>Windows 3.1 US (ANSI)<TD>X<TD><TD>X<TD>X<TD>X
<TR><TD>1253<TD>Windows 3.1 Greek<TD>X<TD><TD>X<TD>X<TD>X
<TR><TD>1254<TD>Windows 3.1 Turkish<TD>X<TD><TD>X<TD>X<TD>X
<TR><TD>1255<TD>Hebrew<TD>X<TD><TD><TD><TD>X
<TR><TD>1256<TD>Arabic<TD>X<TD><TD><TD><TD>X
<TR><TD>1257<TD>Baltic<TD>X<TD><TD><TD><TD>X
<TR><TD>1361<TD>Korean (Johab)<TD>X<TD><TD><TD>**<TD>X
<TBODY>
<TR><TD>437<TD>MS-DOS United States<TD><TD>X<TD>X<TD>X<TD>X
<TR><TD>708<TD>Arabic (ASMO 708)<TD><TD>X<TD><TD><TD>X
<TR><TD>709<TD>Arabic (ASMO 449+, BCON V4)<TD><TD>X<TD><TD><TD>X
<TR><TD>710<TD>Arabic (Transparent Arabic)<TD><TD>X<TD><TD><TD>X
<TR><TD>720<TD>Arabic (Transparent ASMO)<TD><TD>X<TD><TD><TD>X
</TABLE>
MICROSOFT WINDOWS中的代码页支持
代码页
ID
名称
机场核心计划
OEMCP
Windows
NT3.1
Windows
NT3.51
Windows
95
1200Unicode(ISO/IEC-10646的BMP)XX*
1250Windows 3.1东欧XXXX
1251Windows 3.1西里尔xxxx
1252Windows 3.1美国标准(ANSI)XXXX
1253Windows 3.1 GreekXXXX
1254Windows 3.1 TurkishXXXX
1255HebrewXX
1256ArabicXX
1257BalticXX
1361Corean(Johab)X**X
437MS-DOS美国Sxxx
708阿拉伯语(ASMO 708)XX
709Arbic(ASMO 449+,BCON V4)XX
710阿拉伯语(透明阿拉伯语)XX
720阿拉伯语(透明ASMO)XX
和之后的一切,所以我认为它必须是nodeList。评估
可以返回不同的对象,因为XPath可以返回需要表示为不同对象的文档的不同部分。您调用的evaluate版本返回一个NodeList,如果您知道将要获取文本(XPath建议您这样做),那么这个NodeList可能太过了
相反,您可以称之为更简单的:
String evaluate(java.lang.String expression, InputSource source)
例如:
您应该发布一个XML示例代码中给出了示例,InputSource的参数它是一个非常大的文件吗?如果标记片段太大,您可以将其粘贴到此处。请确切地告诉我们您从代码中获得的结果。所显示的是
inti=nodes.getLength()代码>,以及您在代码中提到的示例(http://www.anddev.org/images/tut/basic/parsingxml/example.xml
)和路径/outertag/innertag/mytag/text()
我希望I
具有值1
。你得到了不同的值吗?在哪里以及如何读取返回节点的内容?嘿,我已经更改了帖子。嘿,如果它只有一个节点,这真的很有效。但实际上它是一个表,它有多个,我必须把它们全部取出来,并检查“myTagText”。因为真正的xml网站是一个内部学生分数表,有些项目是空的,无法事先知道它是什么样子。但是,嘿,谢谢您的帮助,在这种情况下,您的XPath需要更改。目前,它从myTag中获取文本(这适用于上面包含的示例XML),但您是说在真正的XML中,它不是myTag中的文本,而是更多的节点。你能给出一个你想要解析的实际XML的例子吗?嗨,我用一个XML表格的例子修改了这篇文章,为了便于阅读,我需要过滤掉后面的所有内容,并找出标题(in)、学生姓名和分数(in)。谢谢你的帮助。
String evaluate(java.lang.String expression, InputSource source)
String myTagText = "";
try {
myTagText = xpath.evaluate(expression, inputSource);
} catch (XPathExpressionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(myTagText);