我想操作具有默认命名空间但没有前缀的xml doc.有没有一种方法可以使用没有命名空间uri的xpath,就好像没有命名空间一样?
我相信如果我们将documentBuilderFactory的namespaceAware属性设置为false应该是可能的.但就我而言,它不起作用.
我的理解是不正确的还是我在代码中犯了一些错误?
这是我的代码:
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(false);
try {
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document dDoc = builder.parse("E:/test.xml");
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList nl = (NodeList) xPath.evaluate("//author", dDoc, XPathConstants.NODESET);
System.out.println(nl.getLength());
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这是我的xml:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.mydomain.com/schema">
<author>
<book title="t1"/>
<book title="t2"/>
</author>
</root>
Run Code Online (Sandbox Code Playgroud) 如果我有像这样的XML文档
<root>
<element1>
<child attr1="blah">
<child2>blahblah</child2>
<child>
</element1>
</root>
Run Code Online (Sandbox Code Playgroud)
我想获得带有第一个子元素的XML字符串.我的输出字符串是
<element1>
<child attr1="blah">
<child2>blahblah</child2>
<child>
</element1>
Run Code Online (Sandbox Code Playgroud)
有很多方法,想看一些想法.我一直在尝试使用Java XML API,但目前尚不清楚是否有一种很好的方法可以做到这一点.
谢谢
我有这样的 xml,我想用其他东西替换胡萝卜标签值我使用这个表达式(<.[^(><.)]+>)
但它不能正常工作我应该更改什么来管理获取值并用新值替换它?:
<Monkey xmlns="http://urlhere.com/monkeynamespace">
<foodType>
<vegtables>
<carrots>1</carrots>
</vegtables>
<foodType>
</Monkey>
Run Code Online (Sandbox Code Playgroud)