2020年11月22日 星期日

無法透過XPath處理的XML字串

 要處理的XML字串如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans><bean id="AB01"><property name="output"><map><entry><key><value>ID</value></key><value>01</value></entry><entry><key><value>ACNO</value></key><value></value></entry><entry><key><value>AMT</value></key><value></value></entry></map></property></bean></beans>


因為無法使用以下這種javax.xml.xpath的方式處理
XPathExpression expression = xPath.compile("//beans//bean//property[@name='output']");

所以改用org.w3c.dom的方式處理
Element eElement = (Element) nNode;
eElement.getElementsByTagName("entry").item(0).getTextContent());
會抓出ID01,再自己substring處理
雖然可以達到目的,但感覺應該有更好的方式

經網友指點,亦可使用以下方式處理eElement.getElementsByTagName("entry").item(0).getChildNodes().item(0).getTextContent()
=>可以取得ID

eElement.getElementsByTagName("entry").item(0).getChildNodes().item(1).getTextContent()
=>可以取得01

應該也可以使用JAXB,但是沒用過JAXB,不熟
日後再研究

沒有留言:

張貼留言