在本教程中,我在代码中看到了DOM解析器的下面一行.
doc.getDocumentElement().normalize();
Run Code Online (Sandbox Code Playgroud)
为什么我们这样做正常化?
我读了文档,但我听不懂.
将所有Text节点放在此Node下面的子树的完整深度中
好的,那么有人可以告诉我(最好有图片)这棵树是什么样子的吗?
任何人都可以解释为什么需要规范化吗?
如果我们不规范化会发生什么?
我得到Java异常,如:
java.net.MalformedURLException: no protocol
Run Code Online (Sandbox Code Playgroud)
我的程序试图通过使用以下方法解析XML字符串:
Document dom;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
dom = db.parse(xml);
Run Code Online (Sandbox Code Playgroud)
XML字符串包含:
String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
" <s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">"+
" <s:Header>"+
" <ActivityId CorrelationId=\"15424263-3c01-4709-bec3-740d1ab15a38\" xmlns=\"http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics\">50d69ff9-8cf3-4c20-afe5-63a9047348ad</ActivityId>"+
" <clalLog_CorrelationId xmlns=\"http://clalbit.co.il/clallog\">eb791540-ad6d-48a3-914d-d74f57d88179</clalLog_CorrelationId>"+
" </s:Header>"+
" <s:Body>"+
" <ValidatePwdAndIPResponse xmlns=\"http://tempuri.org/\">"+
" <ValidatePwdAndIPResult xmlns:a=\"http://schemas.datacontract.org/2004/07/ClalBit.ClalnetMediator.Contracts\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">"+
" <a:ErrorMessage>Valid User</a:ErrorMessage>"+
" <a:FullErrorMessage i:nil=\"true\" />"+
" <a:IsSuccess>true</a:IsSuccess>"+
" <a:SecurityToken>999993_310661843</a:SecurityToken>"+
" </ValidatePwdAndIPResult>"+
" </ValidatePwdAndIPResponse>"+
" </s:Body>\n"+
" </s:Envelope>\n";
Run Code Online (Sandbox Code Playgroud)
有关导致此错误的原因的任何建议?
如果我有冒号分隔的xml标签<my:tag>
,哪个库提供了简单的解析和值操作?我有什么需要寻找的?