Board logo

标题: DOM对象怎么读取xml的规范化后的属性值[已解决] [打印本页]

作者: czjt1234    时间: 2020-3-17 11:03     标题: DOM对象怎么读取xml的规范化后的属性值[已解决]

本帖最后由 czjt1234 于 2020-3-18 21:12 编辑

具体报酬:10元人民币
支付方式:支付宝,微信均可
联系方式:QQ20147578
有效期限:XXXX年XX月XX日之前。
需求描述:
(1)系统环境(XP/Win2003/Vista/Win7,中文版/英文版,专业版/家庭版/精简版,等)
(2)xsd的数据类型normalizedString和token等会对数据进行规范化处理,比如去掉头尾的空格或合并空格等但现在用DOM对象实现不了,读取的还是原始数据,代码如下,分别是1.xml、1.xsd、1.vbs,请问要怎么修改
(3)有效期到月底

  1. <?xml version="1.0" encoding="GB2312"?>
  2. <n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.    xsi:schemaLocation="1.xsd">
  4.   <string a="  s
  5. s              "/>
  6.   <normalizedString a="  n
  7. n              "/>
  8.   <token a="  t
  9. t              "/>
  10. </n>
复制代码



  1. <?xml version="1.0" encoding="GB2312"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3.   <xs:element name="n">
  4.     <xs:complexType>
  5.       <xs:all>
  6.         <xs:element name="string">
  7.           <xs:complexType>
  8.             <xs:simpleContent>
  9.               <xs:extension base="xs:string">
  10.                 <xs:attribute name="a" type="xs:string"/>
  11.               </xs:extension>
  12.             </xs:simpleContent>
  13.           </xs:complexType>
  14.         </xs:element>
  15.         <xs:element name="normalizedString">
  16.           <xs:complexType>
  17.             <xs:simpleContent>
  18.               <xs:extension base="xs:normalizedString">
  19.                 <xs:attribute name="a" type="xs:normalizedString"/>
  20.               </xs:extension>
  21.             </xs:simpleContent>
  22.           </xs:complexType>
  23.         </xs:element>
  24.         <xs:element name="token">
  25.           <xs:complexType>
  26.             <xs:simpleContent>
  27.               <xs:extension base="xs:token">
  28.                 <xs:attribute name="a" type="xs:token"/>
  29.               </xs:extension>
  30.             </xs:simpleContent>
  31.           </xs:complexType>
  32.         </xs:element>
  33.       </xs:all>
  34.     </xs:complexType>
  35.   </xs:element>
  36. </xs:schema>
复制代码




  1. Option Explicit
  2. Dim oDOMDocument, oXSD, oXMLDOMElement, s
  3. Set oXSD = CreateObject("Msxml2.XMLSchemaCache.6.0")
  4. oXSD.add "", "1.xsd"
  5. Set oDOMDocument = CreateObject("Msxml2.DOMDocument.6.0")
  6. oDOMDocument.setProperty "NormalizeAttributeValues", "True"
  7. oDOMDocument.schemas = oXSD
  8. oDOMDocument.load "1.xml"
  9. If oDOMDocument.parseError.errorCode <> 0 Then    '如果加载xml出错
  10.     MsgBox oDOMDocument.parseError.reason & vbLf & _
  11.            "第 " & oDOMDocument.parseError.line & " 行"
  12.     WScript.Quit()
  13. End If
  14. MsgBox oDOMDocument.xml
  15. Set oXMLDOMElement = oDOMDocument.documentElement  '根节点
  16. s = oXMLDOMElement.SelectNodes("string")(0).getAttribute("a")
  17. MsgBox s & vbLf & Len(s)
  18. s = oXMLDOMElement.SelectNodes("normalizedString")(0).getAttribute("a")
  19. MsgBox s & vbLf & Len(s)
  20. s = oXMLDOMElement.SelectNodes("token")(0).getAttribute("a")
  21. MsgBox s & vbLf & Len(s)
复制代码





规范化属性值10元
要是能规范化元素的文本,另外10元
作者: flashercs    时间: 2020-3-17 20:50

此帖仅作者可见
作者: czjt1234    时间: 2020-3-17 23:21

此帖仅作者可见




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2