monitorUrl-- http://host03:8810/solr/admin/stats.jsp
このxmlファイルが含まれています。.jsp形式のxmlからコンテンツを抽出します。
<?xml-stylesheet type="text/xsl" href="stats.xsl"?>
<solr>
<core></core>
<schema>test</schema>
<host>domain.host.com</host>
<now>Fri Nov 11 11:14:01 PST 2011</now>
<start>Thu Sep 22 18:33:06 PDT 2011</start>
<solr-info>
<CORE>
<entry>
<name>
core
</name>
<class>
</class>
<version>
1.0
</version>
<description>
SolrCore
</description>
<stats>
<stat name="coreName" >
</stat>
<stat name="startTime" >
Thu Sep 22 18:33:06 PDT 2011
</stat>
<stat name="refCount" >
2
</stat>
<stat name="aliases" >
[]
</stat>
</stats>
</entry>
<entry>
<name>
searcher
</name>
<class>
org.apache.solr.search.SolrIndexSearcher
</class>
<version>
1.0
</version>
<description>
index searcher
</description>
<stats>
<stat name="searcherName" >
[email protected] main
</stat>
<stat name="caching" >
true
</stat>
<stat name="numDocs" >
111959
</stat>
<stat name="maxDoc" >
112310
</stat>
<stat name="reader" >
DirectoryReader(segments_h0 _1zn:Cv101710/351 _1zl:Cv8026 _1zp:Cv2574)
</stat>
<stat name="readerDir" >
[email protected]/es_idx_prd/projects/index/solr-agile/document/data/index [email protected]
</stat>
<stat name="indexVersion" >
1313979005459
</stat>
<stat name="openedAt" >
Fri Nov 11 11:00:04 PST 2011
</stat>
<stat name="registeredAt" >
Fri Nov 11 11:00:04 PST 2011
</stat>
<stat name="warmupTime" >
0
</stat>
</stats>
</entry>
</solr-info>
</solr>
そして、私は上記のXMLからnumDocs値を抽出するには、111959-- を意味し、以下のfetchlog方法は、単にそのJSPファイルの各行を読んでいます。では、numDocsの値を1行ずつ読み込んで直接取得することで、numDocsの値を取得する方法を教えてください。
monitorUrlは、xml形式の.jspファイルです。 XML /テキスト構造が同じであることを行っている場合は、私のコメントをフォローアップするために
import java.io.IOException;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
import javax.xml.xpath.*;
public class XPathExample {
public static void main(String[] args)
throws ParserConfigurationException, SAXException,
IOException, XPathExpressionException {
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true); // never forget this!
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("books.xml");
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr
= xpath.compile("//numDocs");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
}
}
http://www.ibm.com/developerworks/library/x-javaxpathapi/index.html
.jspに有効なXMLがある場合は、それを解析してXPathを使用して目的のeの値を取得することができます礼儀。 – srkavin
どうすればいいですか?私のコードに基づいてすべての例が評価されます.. !! – ferhan
ここに投稿したXMLは有効ではありません。 Webブラウザ(最初の行がコメントアウトされている)で開き、失敗した場所を確認することができます。 – srkavin