使用QXmlStreamReader::readElementText()可以读取节点的内容。 取src的话使用if(m_xml->name()attributes()value(id) == big8) src = m_xml->name()attributes()value(src); 应该就可以获得了。
第一种:使用XPath
XML的路径我配置在webconfig
的appSettings节点下
Hashtable ht = new Hashtable();
string orgCodePath = ServerMapPath(ConfigurationSettingsAppSettings["orgCodePath"]);
//string orgCodePath = ServerMapPath("//template/home/orgCodexml");
XmlDocument xmldoc = new XmlDocument();
xmldocLoad(orgCodePath);
//获取节点列表
XmlNodeList topM = xmldocSelectNodes("//Organization");
foreach (XmlElement element in topM)
{
string id = elementGetElementsByTagName("ID")[0]InnerText;
string domainName = elementGetElementsByTagName("DomainName")[0]InnerText;
htAdd(id, domainName);
}
第二种:遍历式读取XML
//打开某文件(假设webconfig在根目录中)
string filename=ServerMapPath("/") + @"WebApplication1/webconfig";
XmlDocument xmldoc= new XmlDocument();
xmldocLoad(filename);
//得到顶层节点列表
XmlNodeList topM=xmldocDocumentElementChildNodes;
foreach(XmlElement element in topM)
{
if(elementNameToLower()=="appsettings")
{
//得到该节点的子节点
XmlNodeList nodelist=elementChildNodes;
if ( nodelistCount >0 )
{
//DropDownList1ItemsClear();
foreach(XmlElement el in nodelist)//读元素值
{
//DropDownList1ItemsAdd(elAttributes["key"]InnerXml);
//thisTextBox2Text=elAttributes["key"]InnerText;
thisTextBox2Text=elAttributes["key"]Value;
thisLabel1Text=elAttributes["value"]Value;
//同样在这里可以修改元素值,在后面save。
// elAttributes["value"]Value=thisTextBox2Text;
}
}
}
}
xmldocSave(filename);
读取xml任意节点
XmlNode node=docSelectSingleNode("/configuration/appSettings/add"); //按照节点目录查询
if(node!=null)
{
string k=nodeAttributes["key"]Value;
string v=nodeAttributes["value"]Value;
node=null;
}
XmlNode node=docSelectSingleNode("/configuration/appSettings/add");
if(node!=null)
{
XmlNodeReader nr=new XmlNodeReader(node);
nrMoveToContent();
//检查当前节点是否是内容节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。
nrMoveToAttribute("value");
string s=nrValue;
node=null;
}
string xml = "<xml version=" + "\"10\"><A><B><C>文本值</C></B></A>";
XmlDocument doc = new XmlDocument();
docLoadXml(xml);
string node=docSelectSingleNode("A/B/C")InnerText;
这是我写的,取到了“文本值”。
我是用kxml包来解析的。详情请看 >
using SystemXml;
XmlDocument xmlDoc = new XmlDocument();
xmlDocLoad(ServerMapPath("这里是你的XML的地址"));
XmlNode cNodes = xmlDocSelectSingleNode("columns");
for (int i = 0; i < cNodesChildNodesCount; i++)
{
XmlNode c = cNodesChildNodes[i];
cAttributes["hidden"]Value; //这里就取到hidden的值
cAttributes["show"]Value; // 这里就取到show的值
}
field="name" 这个也是节点属性啊。
大哥,代码很详细了吧,给分,给分!!!!!!!
代码如下:
import javaxxmlparsersDocumentBuilder;
import javaxxmlparsersDocumentBuilderFactory;
import orgw3cdomDocument;
import orgw3cdomElement;
import orgw3cdomNodeList;
public class FileTest {
/
@param args
/
public static void main(String[] args) {
DocumentBuilderFactory dbf = DocumentBuilderFactorynewInstance();
try {
DocumentBuilder db = dbfnewDocumentBuilder();
Document doc = dbparse("d:/testxml");
//得到根节点
Element root = docgetDocumentElement();
NodeList nl = rootgetElementsByTagName("id");
Element e = (Element) nlitem(0);
String id=egetTextContent();
Systemoutprintln("id的值为:"+id);
}catch(Exception e){
eprintStackTrace();
}
}
}
上面的代码中我把
<message msgType="response" msgId="String" timestampCreated="2010-5-13 15:55:54" version="String">
<response>
<code>0</code>
<description>成功</description>
</response>
<body bodyId="1">
<id>11223344</id>
</body>
</message>
这段内容放到了D盘下的testxml文件中
你如果要用可以直接将得到的给字符串加载成Document对象,就可以取到了。
以上就是关于qt 怎么获得xml文件中的特定节点全部的内容,包括:qt 怎么获得xml文件中的特定节点、C#中如何读取XML内具体 某条数据 的信息、如何将XML某节点的值(是字符串)获取并显示在textbox中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)