私はEclipseの下でJavaでXPathを使用しています。SOAP Web サービスを作成しています。XML はプレフィックスと名前空間を使用しています。より読みやすい XML ドキュメントを好むため、プレフィックスを削除して名前空間のみを保持したいと考えました。
XML 定義ファイルからプレフィックスを削除し、XPath を使用して XML をクエリしようとすると、XML のすべてのノードで null が取得され始めました。
XPath を使用する場合、プレフィックスを使用する必要がありますか? 名前空間だけで十分ではありませんか?
<myrequest
xmlns="http://www.mywebsite.com/xml/webservice"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mywebsite.com/xml/webservice Request.xsd">
<state>
<value>demox</value>
これが私のXMLの開始方法であり、XPathでこれをクエリすると、XPath.selectSingleNode()
その中のすべてのノードに対して常にXPathからnullを受け取るようになります。
String myExpression = "myrequest/state/value";
Document doc = new Document(requestXML);
Element e = doc.getRootElement();
request.setMybase(getBase((org.jdom.Element)
XPath.selectSingleNode(doc,myExpression)));