{"id":5250,"date":"2022-05-08T18:01:14","date_gmt":"2022-05-08T10:01:14","guid":{"rendered":"https:\/\/ixyzero.com\/blog\/?p=5250"},"modified":"2022-05-08T18:01:14","modified_gmt":"2022-05-08T10:01:14","slug":"xpath%e7%9a%84%e7%ae%80%e5%8d%95%e5%ad%a6%e4%b9%a0","status":"publish","type":"post","link":"https:\/\/ixyzero.com\/blog\/archives\/5250.html","title":{"rendered":"XPath\u7684\u7b80\u5355\u5b66\u4e60"},"content":{"rendered":"\n<p>=Start=<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u7f18\u7531\uff1a<\/h4>\n\n\n\n<p>\u8d81\u7740\u7528Java\u89e3\u6790XML\u65f6\u5b66\u4e60\u4e00\u4e0bXPath\u7684\u8bed\u6cd5\uff0c\u65b9\u4fbf\u540e\u9762\u6709\u9700\u8981\u7684\u65f6\u5019\u53c2\u8003\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u6b63\u6587\uff1a<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">\u53c2\u8003\u89e3\u7b54\uff1a<\/h5>\n\n\n\n<h6 class=\"wp-block-heading\">XPath\u5e38\u7528\u8bed\u6cd5\u5bf9\u7167\u8868<\/h6>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>\u8868\u8fbe\u5f0f<\/td><td>\u8bf4\u660e<\/td><\/tr><tr><td>\/\/<\/td><td><strong>\u8868\u793a\u8fd4\u56deXML\u6587\u6863\u4e2d\u7684\u6240\u6709\u7b26\u5408\u67e5\u627e\u6761\u4ef6\u7684\u5143\u7d20<\/strong>\uff0c\u800c\u5ffd\u7565\u6587\u6863\u4e2d\u5143\u7d20\u7684\u4f4d\u7f6e\u7ea7\u522b<\/td><\/tr><tr><td>\/<\/td><td>\u8868\u793a\u7edd\u5bf9\u8def\u5f84<\/td><\/tr><tr><td>News\/Links\/name<\/td><td>\u8868\u793a\u76f8\u5bf9\u8def\u5f84<\/td><\/tr><tr><td>*<\/td><td>\u8868\u6240\u6240\u6709\u5143\u7d20<\/td><\/tr><tr><td>or<\/td><td>\u6216<\/td><\/tr><tr><td>and<\/td><td>\u4e0e<\/td><\/tr><tr><td>\u5176\u5b83\u8868\u8fbe\u5f0f<\/td><td>=\uff0c!=\uff0c&lt;\uff0c&gt;\uff0c&gt;=\uff0c&lt;=<\/td><\/tr><tr><td>Text()<\/td><td>\u6587\u672c<\/td><\/tr><tr><td>Node()<\/td><td>\u8282\u70b9<\/td><\/tr><tr><td><em>number<\/em>&nbsp;<strong>last<\/strong>()<\/td><td>last&nbsp;\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u6570\u5b57\uff0c\u8be5\u6570\u5b57\u7b49\u4e8e\u4ece\u8868\u8fbe\u5f0f\u6c42\u503c\u4e0a\u4e0b\u6587\u4e2d\u7684\u4e0a\u4e0b\u6587\u5927\u5c0f(\u5373\u8fd4\u56de\u8282\u70b9\u4e2a\u6570)<\/td><\/tr><tr><td><em>number<\/em>&nbsp;<strong>position<\/strong>()<\/td><td>position\u51fd\u6570\u8fd4\u56de\u4e00\u4e2a\u6570\u5b57\uff0c\u8be5\u6570\u5b57\u7b49\u4e8e\u4ece\u8868\u8fbe\u5f0f\u6c42\u503c\u4e0a\u4e0b\u6587\u4e2d\u7684\u4e0a\u4e0b\u6587\u4f4d\u7f6e(\u5373\u5f53\u524d\u4f4d\u7f6e)<\/td><\/tr><tr><td><em>number<\/em>&nbsp;<strong>count<\/strong>(<em>node-set<\/em>)<\/td><td>count&nbsp;\u51fd\u6570\u8fd4\u56de\u5728\u53c2\u6570node-set\u4e2d\u8282\u70b9\u7684\u4e2a\u6570\u3002<\/td><\/tr><tr><td><em>boolean<\/em>&nbsp;<strong>not<\/strong>(<em>boolean<\/em>)<\/td><td>\u5982\u679c\u53c2\u6570\u4e3a\u771f&nbsp;not&nbsp;\u51fd\u6570\u8fd4\u56de\u771f\uff0c\u5426\u5219\u8fd4\u56de\u5047\u3002<\/td><\/tr><tr><td><em>number<\/em>&nbsp;<strong>number<\/strong>(<em>object<\/em>?)<\/td><td>number&nbsp;\u51fd\u6570\u53c2\u6570\u4f9d\u4e0b\u5217\u5404\u9879\u8f6c\u6362\u6210\u6570\u5b57<\/td><\/tr><tr><td>\/\/*<\/td><td><strong>\u83b7\u5f97\u6240\u6709\u8282\u70b9<\/strong><\/td><\/tr><tr><td>..\/*<\/td><td>\u83b7\u5f97\u5f53\u524d\u8282\u70b9\u7684\u7236\u8282\u70b9\u7684\u6240\u6709\u8282\u70b9<\/td><\/tr><tr><td>\/\/Links<\/td><td><strong>\u83b7\u5f97\u6240\u6709\u7684Links\u8282\u70b9<\/strong><\/td><\/tr><tr><td>\/\/Links[name=\u201d\u7f51\u6613\u201d]<\/td><td><strong>\u83b7\u5f97\u5b50\u8282\u70b9name\u7684\u6587\u672c\u4e3a\u201c\u7f51\u6613\u201d\u7684\u6240\u6709Links\u8282\u70b9<\/strong><\/td><\/tr><tr><td>\/\/Links[@id=\u201d1\u201d]<\/td><td><strong>\u83b7\u5f97\u5c5e\u6027ID=1\u7684\u6240\u6709Links\u8282\u70b9<\/strong><\/td><\/tr><tr><td>\/\/*[name=\u201d\u65b0\u6d6a\u201d]<\/td><td><strong>\u83b7\u5f97\u5b50\u8282\u70b9name\u7684\u6587\u672c\u4e3a\u201c\u65b0\u6d6a\u201d\u7684\u6240\u6709\u8282\u70b9<\/strong><\/td><\/tr><tr><td>\/\/*[@id=\u201d1\u201d]<\/td><td><strong>\u83b7\u5f97\u5c5e\u6027ID=1\u7684\u6240\u6709\u8282\u70b9<\/strong><\/td><\/tr><tr><td>\/\/*[@id]<\/td><td><strong>\u83b7\u5f97\u5b58\u5728\u5c5e\u6027ID\u7684\u6240\u6709\u8282\u70b9\u70b9<\/strong><\/td><\/tr><tr><td>\/\/*[name]<\/td><td>\u83b7\u5f97\u5b58\u5728\u5b50\u8282\u70b9name\u7684\u6240\u6709\u8282\u70b9<\/td><\/tr><tr><td>\/\/Links[\u5e8f\u53f7]<\/td><td>\u83b7\u5f97\u8fd4\u56de\u7684N\u4e2aLinks\u8282\u70b9\u4e2d\u7684\u7b2c\u5e8f\u53f7\u4e2a\u8282\u70b9<\/td><\/tr><tr><td>\/\/Links[1 or 2]<\/td><td>\u83b7\u5f97\u8fd4\u56de\u7684N\u4e2aLinks\u8282\u70b9\u7684\u4e2d\u7b2c\u4e00\u4e2a\u548c\u7b2c\u4e8c\u4e2a\u8282\u70b9<\/td><\/tr><tr><td>\/\/*[name=\u201d\u7f51\u6613\u201d and @id=\u201d1\u201d]<\/td><td>\u83b7\u5f97\u6240\u6709\u5b50\u70b9\u8282name\u7684\u6587\u672c\u4e3a\u201c\u7f51\u6613\u201d&nbsp;\u4e14\u81ea\u5df1\u7684\u5c5e\u751fid=\u201c1\u201d\u7684\u8282\u70b9<\/td><\/tr><tr><td>\/\/text()<\/td><td>\u9009\u62e9\u6240\u6709\u7684\u6b63\u6587\u8282\u70b9(\u5373\u53f6\u5b50\u8282\u70b9)<\/td><\/tr><tr><td>\/\/Links[position()=last()]<\/td><td>\u83b7\u5f97\u8fd4\u56de\u7684N\u4e2aLinks\u8282\u70b9\u4e2d\u7684\u6700\u540e\u4e00\u4e2a\u8282\u70b9\u7b49\u540c\u4e8e\/\/Links[last()]<\/td><\/tr><tr><td>\/\/*[contains(name,\u201d\u65b0\u201d)]<\/td><td>\u83b7\u5f97\u5b50\u8282\u70b9name\u7684\u6587\u672c\u4e2d\u5305\u542b\u201c\u65b0\u201d\u7684\u6240\u6709\u8282\u70b9<\/td><\/tr><tr><td>\/\/Links[1]<\/td><td>\u83b7\u5f97\u8fd4\u56de\u7684N\u4e2aLinks\u8282\u70b9\u4e2d\u7684\u7b2c\u4e00\u4e2a\u8282\u70b9<\/td><\/tr><tr><td>\/\/Links[1]\/name[1]<\/td><td><strong>\u83b7\u5f97\u7b2c\u4e00\u4e2aLinks\u7684\u7b2c\u4e00\u4e2aname\u8282\u70b9<\/strong><\/td><\/tr><tr><td>\/\/Links\/name<\/td><td><strong>\u83b7\u5f97\u6240\u6709Links\u8282\u70b9\u4e0b\u7684\u6240\u6709name\u8282\u70b9<\/strong><\/td><\/tr><tr><td>\/\/*[@id&gt;1]<\/td><td>\u83b7\u5f97\u5c5e\u6027ID&gt;1\u7684\u6240\u6709\u8282\u70b9<\/td><\/tr><tr><td>\/\/*[number(@id)+1&gt;1]<\/td><td>\u83b7\u5f97\u5c5e\u751fID\u7684\u503c\u52a01&gt;1\u7684\u6240\u6709\u8282\u70b9<\/td><\/tr><tr><td>\/\/*[number(text())&gt;1]<\/td><td>\u83b7\u5f97\u6587\u672c\u8282\u70b9\u7684\u6587\u672c\u503c\u5927\u4e8e1\u7684\u6240\u6709\u8282\u70b9<\/td><\/tr><tr><td>\/\/*[(number(text()) mode 2)=1]<\/td><td>\u83b7\u5f97\u6587\u672c\u8282\u70b9\u7684\u6587\u672c\u503c\u4e3a\u57fa\u6570\u7684\u6240\u6709\u8282\u70b9<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">\u5f53\u8282\u70b9\/\u5143\u7d20\u540d\u79f0\u4e2d\u5305\u542b\u5206\u53f7(:)\u65f6\u8be5\u600e\u4e48\u5904\u7406\uff1f<\/h6>\n\n\n\n<p>\u6216\u8005\u8003\u8651\u5ffd\u7565namespace<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/*&#91;name()='media:thumbnail']<\/code><\/pre>\n\n\n\n<p>\u6216\u8005\u8003\u8651\u5148\u7528\u4e2a\u7c97\u7565\u7684\u8fc7\u6ee4\u65b9\u6cd5\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/item\/*&#91;local-name()='thumbnail']<\/code><\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">Java\u4e2d\u4f7f\u7528XPath\u7684\u6837\u4f8b<\/h6>\n\n\n\n<pre class=\"wp-block-code\"><code>package com.example;\n\nimport org.w3c.dom.Document;\nimport org.w3c.dom.Element;\nimport org.w3c.dom.Node;\nimport org.w3c.dom.NodeList;\nimport org.xml.sax.InputSource;\n\nimport javax.xml.parsers.DocumentBuilder;\nimport javax.xml.parsers.DocumentBuilderFactory;\nimport javax.xml.xpath.XPath;\nimport javax.xml.xpath.XPathConstants;\nimport javax.xml.xpath.XPathFactory;\nimport java.io.File;\nimport java.io.StringReader;\n\n\/**\n * @author ixyzero\n * Created on 2022-05-08\n *\/\npublic class opXml2 {\n\n    public static void main(String&#91;] args) {\n        try {\n            Document document = loadXMLFromString(getXMLString());\n\n            System.out.println(document.getDocumentElement()); \/\/\n            System.out.println(document.getDocumentElement().getNodeName()); \/\/\n            System.out.println(document.getDocumentElement().getAttributes().getLength()); \/\/\n            System.out.println(Node.ELEMENT_NODE); \/\/ \u5143\u7d20\u8282\u70b9ELEMENT_NODE\u7684type\u5bf9\u5e94\u6570\u503c\u4e3a 1\n\n            System.out.println(document.getDocumentElement().getChildNodes().getLength()); \/\/ \u4e00\u7ea7\u8282\u70b9(\u6839\u7ed3\u70b9\u4e0b\u4e00\u5c42)\u7684\u4e2a\u6570\n            \/\/ \u904d\u5386\u4e00\u7ea7\u8282\u70b9(\u6839\u7ed3\u70b9\u4e0b\u4e00\u5c42)\n            NodeList nodeList = document.getDocumentElement().getChildNodes();\n            for (int i = 0; i &lt; nodeList.getLength(); i++) {\n                Node node = nodeList.item(i);\n                System.out.println(node.getNodeName() + \"\\t\" + node.getNodeType());\n            }\n\n            \/\/ \u904d\u5386\u7279\u5b9atag\u7684\u5143\u7d20\u5e76\u6253\u5370\u51fa\u5176\u5b50\u5143\u7d20\u7c7b\u578b\u4e3aELEMENT_NODE\u7684\u5b50\u5143\u7d20\u7684\u7c7b\u578b\u548c\u8282\u70b9\u540d\u79f0\n            NodeList nList = document.getElementsByTagName(\"p:sp\");\n            for (int i = 0; i &lt; nList.getLength(); i++) {\n                Node nNode = nList.item(i);\n                System.out.println(String.format(\"\\nCurrent Element: %s, childNode count: %d\",\n                        nNode.getNodeName(), nNode.getChildNodes().getLength()));\n                if (nNode.getNodeType() == Node.ELEMENT_NODE) {\n                    Element eElement = (Element) nNode;\n                    for (int j = 0; j &lt; eElement.getChildNodes().getLength(); j++) {\n                        System.out.println(eElement.getChildNodes().item(j).getNodeType() + \"\\t\" + eElement.getChildNodes().item(j).getNodeName());\n                    }\n                }\n            }\n\n            \/*\n\n            \/\/*     ->  \u83b7\u5f97\u6240\u6709\u8282\u70b9\n            \/\/*&#91;@cx] ->  \u83b7\u5f97\u5b58\u5728\u5c5e\u6027cx\u7684\u6240\u6709\u8282\u70b9\n            \/\/*&#91;@cx=\"1\"] ->  \u83b7\u5f97\u5b58\u5728\u5c5e\u6027cx\u4e14\u503c\u4e3a1\u7684\u6240\u6709\u8282\u70b9\n            \/\/*&#91;name()='p:sp']  -> \u83b7\u5f97\u6240\u6709p:sp\u8282\u70b9\n            \/\/*&#91;name()='p:sp']&#91;1]  -> \u83b7\u5f97\u7b2c\u4e00\u4e2ap:sp\u8282\u70b9\n            \/\/*&#91;local-name()='sp']  ->  *:sp\n            \/\/element_name  ->  \u83b7\u5f97\u6240\u6709element_name\u8282\u70b9\uff0c\u5982\u679celement_name\u5b57\u7b26\u4e32\u4e2d\u6ca1\u6709\u5192\u53f7(:)\u7684\u8bdd\u76f4\u63a5\u7528\u8fd9\u79cd\u65b9\u5f0f\u5c31OK\n            \/\/book\/title    ->  \u83b7\u5f97\u6240\u6709book\u8282\u70b9\u4e0b\u7684\u6240\u6709title\u8282\u70b9\n\n            book\/title      ->  0 node\n            \/book\/title      ->  0 node\n            \/\/book\/title      ->  4 nodes\n            inventory\/book\/title      ->  3 nodes\n            \/inventory\/book\/title      ->  3 nodes\n\n             *\/\n            XPath xPath =  XPathFactory.newInstance().newXPath();\n            String expression = \"\/inventory\/book\/title\";\n            System.out.println(expression);\n            NodeList nodeList1 = (NodeList) xPath.compile(expression).evaluate(document, XPathConstants.NODESET);\n            System.out.println(nodeList1.getLength());\n            for (int i = 0; i &lt; nodeList1.getLength(); i++) {\n                Node nNode = nodeList1.item(i);\n                System.out.println(String.format(\"Current Element: %s, node content: %s\",\n                        nNode.getNodeName(), nNode.getTextContent()));\n            }\n\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n\n    public static Document loadXMLFromFile(String filePath) throws Exception {\n        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n        DocumentBuilder builder = factory.newDocumentBuilder();\n        return builder.parse(new File(filePath));\n    }\n\n    public static Document loadXMLFromString(String xml) throws Exception {\n        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\n        DocumentBuilder builder = factory.newDocumentBuilder();\n        InputSource is = new InputSource(new StringReader(xml));\n        return builder.parse(is);\n    }\n\n    public static String getXMLString() {\n        return \"&lt;inventory id=\\\"123\\\" name=\\\"test\\\" year=\\\"2022\\\">\\n\" +\n                \"    &lt;book year=\\\"2020\\\">\\n\" +\n                \"        &lt;title>Snow Crash&lt;\/title>\\n\" +\n                \"        &lt;author>Neal Stephenson&lt;\/author>\\n\" +\n                \"        &lt;publisher>Spectra&lt;\/publisher>\\n\" +\n                \"        &lt;isbn>0553380958&lt;\/isbn>\\n\" +\n                \"        &lt;price>14.95&lt;\/price>\\n\" +\n                \"    &lt;\/book>\\n\" +\n                \"    &lt;book year=\\\"2015\\\">\\n\" +\n                \"        &lt;title>Burning Tower&lt;\/title>\\n\" +\n                \"        &lt;author>Larry Niven&lt;\/author>\\n\" +\n                \"        &lt;publisher>Pocket&lt;\/publisher>\\n\" +\n                \"        &lt;isbn>0743416910&lt;\/isbn>\\n\" +\n                \"        &lt;price>5.99&lt;\/price>\\n\" +\n                \"    &lt;\/book>\\n\" +\n                \"    &lt;book year=\\\"1995\\\">\\n\" +\n                \"        &lt;title>Zodiac&lt;\/title>\\n\" +\n                \"        &lt;author>Neal Stephenson&lt;\/author>\\n\" +\n                \"        &lt;publisher>Spectra&lt;\/publisher>\\n\" +\n                \"        &lt;isbn>0553573862&lt;\/isbn>\\n\" +\n                \"        &lt;price>7.50&lt;\/price>\\n\" +\n                \"    &lt;\/book>\\n\" +\n                \"\\n\" +\n                \"    &lt;p:cSld>\\n\" +\n                \"    &lt;book year=\\\"1995\\\">\\n\" +\n                \"        &lt;title>Zodiac&lt;\/title>\\n\" +\n                \"        &lt;author>Neal Stephenson&lt;\/author>\\n\" +\n                \"        &lt;publisher>Spectra&lt;\/publisher>\\n\" +\n                \"        &lt;isbn>0553573862&lt;\/isbn>\\n\" +\n                \"        &lt;price>7.50&lt;\/price>\\n\" +\n                \"    &lt;\/book>\\n\" +\n                \"        &lt;p:spTree>\\n\" +\n                \"            &lt;p:nvGrpSpPr>\\n\" +\n                \"                &lt;p:cNvPr id=\\\"1\\\" name=\\\"\\\"\/>\\n\" +\n                \"                &lt;p:cNvGrpSpPr\/>\\n\" +\n                \"                &lt;p:nvPr\/>\\n\" +\n                \"            &lt;\/p:nvGrpSpPr>\\n\" +\n                \"            &lt;p:grpSpPr>\\n\" +\n                \"                &lt;a:xfrm>\\n\" +\n                \"                    &lt;a:off x=\\\"0\\\" y=\\\"0\\\"\/>\\n\" +\n                \"                    &lt;a:ext cx=\\\"0\\\" cy=\\\"0\\\"\/>\\n\" +\n                \"                    &lt;a:chOff x=\\\"0\\\" y=\\\"0\\\"\/>\\n\" +\n                \"                    &lt;a:chExt cx=\\\"0\\\" cy=\\\"0\\\"\/>\\n\" +\n                \"                &lt;\/a:xfrm>\\n\" +\n                \"            &lt;\/p:grpSpPr>\\n\" +\n                \"            &lt;p:sp>\\n\" +\n                \"                &lt;p:nvSpPr>\\n\" +\n                \"                    &lt;p:cNvSpPr>\\n\" +\n                \"                        &lt;a:spLocks noGrp=\\\"true\\\"\/>\\n\" +\n                \"                    &lt;\/p:cNvSpPr>\\n\" +\n                \"                    &lt;p:nvPr>\\n\" +\n                \"                        &lt;p:ph type=\\\"ctrTitle\\\"\/>\\n\" +\n                \"                    &lt;\/p:nvPr>\\n\" +\n                \"                &lt;\/p:nvSpPr>\\n\" +\n                \"                &lt;p:spPr\/>\\n\" +\n                \"                &lt;p:txBody>\\n\" +\n                \"                    &lt;a:bodyPr\/>\\n\" +\n                \"                    &lt;a:lstStyle\/>\\n\" +\n                \"                    &lt;a:p>\\n\" +\n                \"                        &lt;a:r>\\n\" +\n                \"                            &lt;a:rPr kumimoji=\\\"true\\\" lang=\\\"en-US\\\" altLang=\\\"zh-CN\\\" dirty=\\\"false\\\"\/>\\n\" +\n                \"                            &lt;a:t>This is title&lt;\/a:t>\\n\" +\n                \"                        &lt;\/a:r>\\n\" +\n                \"                        &lt;a:endParaRPr kumimoji=\\\"true\\\" lang=\\\"zh-CN\\\" altLang=\\\"en-US\\\" dirty=\\\"false\\\"\/>\\n\" +\n                \"                    &lt;\/a:p>\\n\" +\n                \"                &lt;\/p:txBody>\\n\" +\n                \"            &lt;\/p:sp>\\n\" +\n                \"            &lt;p:sp>\\n\" +\n                \"                &lt;p:txBody>\\n\" +\n                \"                    &lt;a:bodyPr\/>\\n\" +\n                \"                    &lt;a:lstStyle\/>\\n\" +\n                \"                    &lt;a:p>\\n\" +\n                \"                        &lt;a:r>\\n\" +\n                \"                            &lt;a:rPr kumimoji=\\\"true\\\" lang=\\\"en-US\\\" altLang=\\\"zh-CN\\\" dirty=\\\"false\\\"\/>\\n\" +\n                \"                            &lt;a:t>Subtitle here&lt;\/a:t>\\n\" +\n                \"                        &lt;\/a:r>\\n\" +\n                \"                        &lt;a:endParaRPr kumimoji=\\\"true\\\" lang=\\\"zh-CN\\\" altLang=\\\"en-US\\\" dirty=\\\"false\\\"\/>\\n\" +\n                \"                    &lt;\/a:p>\\n\" +\n                \"                &lt;\/p:txBody>\\n\" +\n                \"            &lt;\/p:sp>\\n\" +\n                \"            &lt;p:pic>\\n\" +\n                \"                &lt;p:nvPicPr>\\n\" +\n                \"                    &lt;p:cNvPr id=\\\"4136\\\" name=\\\"Picture 1\\\" descr=\\\"1.png\\\"\/>\\n\" +\n                \"                    &lt;p:nvPr\/>\\n\" +\n                \"                &lt;\/p:nvPicPr>\\n\" +\n                \"                &lt;p:blipFill>\\n\" +\n                \"                    &lt;a:blip cstate=\\\"print\\\" r:link=\\\"rId3\\\"\/>\\n\" +\n                \"                &lt;\/p:blipFill>\\n\" +\n                \"            &lt;\/p:pic>\\n\" +\n                \"        &lt;\/p:spTree>\\n\" +\n                \"        &lt;p:extLst>\\n\" +\n                \"            &lt;p:ext uri=\\\"{BB962C8B-B14F-4D97-AF65-F5344CB8AC3E}\\\">\\n\" +\n                \"                &lt;p14:creationId val=\\\"3160098309\\\"\/>\\n\" +\n                \"            &lt;\/p:ext>\\n\" +\n                \"        &lt;\/p:extLst>\\n\" +\n                \"    &lt;\/p:cSld>\\n\" +\n                \"&lt;\/inventory>\";\n    }\n}\n<\/code><\/pre>\n\n\n\n<h5 class=\"wp-block-heading\">\u53c2\u8003\u94fe\u63a5\uff1a<\/h5>\n\n\n\n<p>XML \u5143\u7d20<br><a href=\"https:\/\/www.runoob.com\/xml\/xml-elements.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.runoob.com\/xml\/xml-elements.html<\/a><\/p>\n\n\n\n<p>Intro to XPath with Java<br><a href=\"https:\/\/www.baeldung.com\/java-xpath\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.baeldung.com\/java-xpath<\/a><\/p>\n\n\n\n<p><strong>Java XPath API\u8bed\u6cd5\u6559\u7a0b<\/strong> # XPath\u5e38\u7528\u8bed\u6cd5<br><a href=\"http:\/\/www.51gjie.com\/java\/747.html\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/www.51gjie.com\/java\/747.html<\/a><\/p>\n\n\n\n<p><strong>XPath query for XML node with colon in node name<\/strong><br><a href=\"https:\/\/newbedev.com\/xpath-query-for-xml-node-with-colon-in-node-name\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/newbedev.com\/xpath-query-for-xml-node-with-colon-in-node-name<\/a><\/p>\n\n\n\n<p>Use XPath to parse element name containing a colon<br><a href=\"https:\/\/stackoverflow.com\/questions\/4282147\/use-xpath-to-parse-element-name-containing-a-colon\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/stackoverflow.com\/questions\/4282147\/use-xpath-to-parse-element-name-containing-a-colon<\/a><\/p>\n\n\n\n<p>XML Namespaces and How They Affect XPath and XSLT<br><a href=\"https:\/\/docs.microsoft.com\/en-us\/previous-versions\/dotnet\/articles\/ms950779(v=msdn.10)?redirectedfrom=MSDN\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/docs.microsoft.com\/en-us\/previous-versions\/dotnet\/articles\/ms950779(v=msdn.10)?redirectedfrom=MSDN<\/a><\/p>\n\n\n\n<p>=END=<\/p>\n","protected":false},"excerpt":{"rendered":"<p>=Start= \u7f18\u7531\uff1a \u8d81\u7740\u7528Java\u89e3\u6790XML\u65f6\u5b66\u4e60\u4e00\u4e0bXPath\u7684\u8bed\u6cd5\uff0c\u65b9\u4fbf\u540e\u9762\u6709\u9700\u8981\u7684\u65f6\u5019\u53c2\u8003\u3002 \u6b63\u6587\uff1a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,7],"tags":[61,599,1809],"class_list":["post-5250","post","type-post","status-publish","format-standard","hentry","category-knowledgebase-2","category-programing","tag-java","tag-xml","tag-xpath"],"views":1222,"_links":{"self":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/5250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/comments?post=5250"}],"version-history":[{"count":1,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/5250\/revisions"}],"predecessor-version":[{"id":5251,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/posts\/5250\/revisions\/5251"}],"wp:attachment":[{"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/media?parent=5250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/categories?post=5250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixyzero.com\/blog\/wp-json\/wp\/v2\/tags?post=5250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}