网上提供的一些方法比较简单,无法适应XML文件的动态变化 ,没办法只能自己查文档写,总算没浪费时间,用的时候别忘了加#import
"msxml4.dll"这个动态链接库网上很好找,自己找一下,希望能帮助需要的朋友,困了
::CoInitialize(NULL);
//初始化COM
MSXML2::IXMLDOMDocumentPtr pDoc;
MSXML2::IXMLDOMElementPtr
xmlRoot;
HRESULT hr =
pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));
if(!SUCCEEDED(hr))
{
return
;
}
pDoc->load(".\\PortControlStrategy.xml");
MSXML2::IXMLDOMElementPtr
childNode;
childNode =
(MSXML2::IXMLDOMElementPtr)(pDoc->selectSingleNode("//StrategyGroup"));
MSXML2::IXMLDOMNodePtr
nextNode = NULL;
MSXML2::IXMLDOMNodeListPtr childNodeList;
do{
if(nextNode)
childNode
= (MSXML2::IXMLDOMElementPtr)nextNode;
MSXML2::IXMLDOMNodePtr
NodeName;
CString strAttrValue;
chil ......
//******************** 头文件 Markup.h *******************
// Markup.h: interface for the CMarkup class.
//
// Markup Release 11.2
// Copyright (C) 2009 First Objective Software, Inc. All rights reserved
// Go to www.firstobject.com for the latest CMarkup and EDOM documentation
// Use in commercial applications requires written permission
// This software is provided "as is", with no warranty.
#if !defined(_MARKUP_H_INCLUDED_)
#define _MARKUP_H_INCLUDED_
#include <stdlib.h>
#include <string.h> // memcpy, memset, strcmp...
// Major build options
// MARKUP_WCHAR wide char (2-byte UTF-16 on Windows, 4-byte UTF-32 on Linux and OS X)
// MARKUP_MBCS ANSI/double-byte strings on Windows
// MARKUP_STL (default except VC++) use STL strings instead of MFC strings
// MARKUP_SAFESTR to use string _s functions in VC++ 2005 (_MSC_VER >= 1400)
// MARKUP_WINCONV (default for VC++) for Windows API character conversion
// MARKUP_ICONV (default for GNU) for cha ......
XML序列化与反序列化 整理文档
XML序列化与反序列化
// OBJECT -> XML
public static void SaveXml(string filePath, object obj) { SaveXml(filePath, obj, obj.GetType()); }
public static void SaveXml(string filePath, object obj, System.Type type)
{
using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath))
{
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(type);
xs.Serialize(writer, obj);
writer.Close();
}
}
// XML -> OBJECT
public static object LoadXml(string fi ......
对于带有表空间xmlns的xml文件的解析,用正常解析文件的方法总是失效,不起作用,无法获得元素。
下面给出两种方法解析此类文件:
1.按正常解析xml文件的方法,需要注意几点:
获取元素Element,不可使用函数:document.selectNodes("//region");
只可以先取到根元素,一级一级往下取,eg:
Element root = document.getRootElement();
Element ele = root.element("head");
获取属性值,可以按一般的方法操作,eg:
List ll = document.selectNodes("//@regionName");
System.out.println("ll.size=" + ll.size());
2.使用XPath。eg:
public void testHasNameSpace(File file) {
SAXReader saxReader = new SAXReader();
Document document = null;
// XmlDocument document=
try {
document = saxReader.read(file);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HashMap xmlMap = new HashMap();
xmlMap.put("smil", "http://www.w3.org/2000/SMIL20/CR/Language");
XPath x = document.createXPath("//smil:region");
x.setNamespaceURIs(xmlMap);
......
不知道是哪位牛人的程序,放在这里怕丢了。
SQL code
CREATE TABLE tb(id int primary key,val numeric(10,2),date datetime,name varchar(100))
INSERT tb(id,val,date,name) SELECT 1,12,GETDATE(),'小梁'
UNION ALL SELECT 12,29.334,'2010-09-12','兰儿';
SELECT
CAST('<DATAPACKET Version="2.0"><METADATA>'+
(SELECT A.name AS [@attrname],B.name AS [@fieldtype],
CASE WHEN EXISTS(SELECT * from sys.indexes AS C
JOIN sys.index_columns AS D
ON C.object_id=D.object_id AND C.index_id=D.index_id
WHERE C.object_id=A.object_id AND D.column_id=A.column_id
AND C.is_primary_key=1)
THEN 'true' END AS [@IS_PRIMARY_KEY],
A.max_length AS [@WIDTH]
from sys.columns AS A
JOIN sys.types AS B
ON A.user_type_id = B.user_type_id AND object_id=OBJECT_ID('tb')
FOR XML PATH('FIELD'),ROOT('FIELDS ......
FusionCharts 的 XML标签属性有一下四种数据类型
* Boolean - 布尔类型,只能为1或者0。例如:<graph showNames=’1′ >
* Number - 数字类型,只能为数字。例如:<graph yAxisMaxValue=’200′ >
* String - 字符串类型,只能为字符串。例如: <graph caption=’My Chart’ >
* Hex Color Code - 十六进制颜色代码,前边没有’#’.例如: <graph bgColor=’FFFFDD’ >
XML中的标签和属性有:
<graph> 所具有的属性
flash背景参数:
* bgColor=”HexColorCode” : 设置flash的背景颜色
* bgAlpha=”NumericalValue(0-100)” : 设置背景的透明度
* bgSWF=”Path of SWF File” : 设置一个外部的Flash 为flash的背景
图表背景参数:
* canvasBgColor=”HexColorCode” : 设置图表背景的颜色
* canvasBaseColor=”HexColorCode” : 设置图表基部的颜色
* canvasBaseDepth=”Numerical Value” : 设置图表基部的高度
* canvasBgDepth=”Numerical Value” : 设置图表背景的深度
* show ......