如何用java取得XML节点的属性值

如何用java取得XML节点的属性值,第1张

下个dom4j包我下面的方法笨了点不知道还有好的不

import javaioFile;

import javautilIterator;

import orgdom4j;

import orgdom4jioSAXReader;

public class ResultXmlTest1 {

public static void main(String args[])

{

SAXReader reader=new SAXReader();

try

{

Document doc=readerread(new File("resultxml"));

Element root=docgetRootElement();

for(Iterator ite=rootelementIterator();itehasNext();)

{

Element ele=(Element)itenext();

for(Iterator iter=eleelementIterator();iterhasNext();)

{

Element elem=(Element)iternext();

//Systemoutprintln(elemgetName());

for(Iterator itera=elemelementIterator();iterahasNext();)

{

Element eleme=(Element)iteranext();

//Systemoutprintln(elemegetName());

for(Iterator iterat=elemeelementIterator();iterathasNext();)

{

Element elemem=(Element)iteratnext();

//Systemoutprintln(elememgetName());

for(Iterator iterato=elememelementIterator();iteratohasNext();)

{

Element elememe=(Element)iteratonext();

//Systemoutprintln(elememegetName());

for(Iterator last=elememeelementIterator();lasthasNext();)

{

Element elemLast=(Element)lastnext();

//Systemoutprintln(elemLastgetName());

for(Iterator at=elemLastattributeIterator();athasNext();)

{

Attribute att=(Attribute)atnext();

if(attgetName()equals("start"))

Systemoutprintln(attgetText());

}

}

}

}

}

}

}

}catch(DocumentException e)

{

eprintStackTrace();

}

}

}

病情分析:

你好,通过你的描述,黄体一般破裂2周,没不适,就可以同床。

指导意见:

建议做好避孕,保持外阴清洁,注意休息,加强营养,可以复发,但和同床关系不大,祝顺利。

病情分析:

你好这位朋友,根据你的描述,考虑你现在的这种情况,需要手术后一个月才可以过性生活的,因为这种手术的恢复需要一段时间,所以术后一个月过性生活就没有问题了。

指导意见:

根据你现在的情况,建议你手术一个月后果性生活,而且不会有复发的情况发生,但一定要注意性生活不要太频繁,性生活的动作也应该轻柔一些,同时注意外阴部位清洗,希望我的回复能够帮助你!

控制台应用程序中测试

static void Main(string[] args)

{

XmlDocument xd = new XmlDocument();

xdLoad("XMLFile1xml");

ConsoleWriteLine("根据节点的Name查找,请输入Name:");

string name = ConsoleReadLine()Trim();

XmlNode xn = xdSelectSingleNode("//TreeNode[@name='" + name + "']");

if (xn != null)

{

ConsoleWriteLine(xnOuterXml);

}

ConsoleWriteLine("\n根据节点的type查找,请输入type:");

string type = ConsoleReadLine()Trim();

XmlNodeList xnl1 = xnSelectNodes("//TreeNode[@type='" + type + "']");

foreach (XmlNode xni in xnl1)

{

ConsoleWriteLine(stringFormat("\n<TreeNode type=\"{0}\" id=\"{1}\" name=\"{2}\" security=\"{3}\" property=\"{4}\">", xniAttributes["type"]Value, xniAttributes["id"]Value, xniAttributes["name"]Value, xniAttributes["security"]Value, xniAttributes["property"]Value));

}

ConsoleWriteLine("\n输入type与name创建新节点\n请输入type:");

string ctype = ConsoleReadLine()Trim();

ConsoleWriteLine("\n输入name:");

string cname = ConsoleReadLine()Trim();

XmlNode fxd = xdSelectSingleNode("//TreeNode[@name='" + name + "']");

if (fxd == null)

{

ConsoleWriteLine(stringFormat("\nname为{0}的节点不存在,创建节点失败!", cname));

ConsoleReadLine();

}

else

{

XmlElement xe=xdCreateElement("TreeNode");

xeSetAttribute("type",ctype);

fxdAppendChild(xe);

xdSave("XMLFile1xml");

}

}

var xml = new XmlDocument();

xmlLoad(xmlFile);

String value = xmlSelectSingleNode("/RTXCData/Item[@Key='Title']")InnerText;

ConsoleWriteLine(value);

using SystemXml;

//初始化一个xml实例

XmlDocument xml=new XmlDocument();

//导入指定xml文件

xmlLoad(path);

xmlLoad(>

//xmlFile是xml文件,nodeName是节点名,attributeName是节点的属性名,因为节点名是可以重复的,所以用list存放返回值

public List<string> GetAttribute(string xmlFile, string nodeName, string attributeName)

{

List<string> retList = new List<string>();

XmlDocument xx = new XmlDocument();

xxLoad(xmlFile);

XmlNodeList xxList = xxGetElementsByTagName(nodeName);

foreach (XmlNode xxNode in xxList)

{

retListAdd(xxNodeAttributes[attributeName]Value);

}

return retList;

}

1、用 childNodes 属性,按顺序取

实现过程:首先创建一个 xml 对象,然后载入 xml 文件,再根据待取节点父节点在 xml 文件中的序号和本身的序号,确定待取节点的位置,最后返回待取节点的值。

//pId 待取节点父节点序号

//cId 待取节点序号

function getXmlNodeValue(pId, cId) {

var xmlDoc = new ActiveXObject("MicrosoftXMLDOM");

xmlDocasync = false;

xmlDocload("employeeInfoxml");

var nodes = xmlDocdocumentElementchildNodes[pId]childNodes[cId];return nodeschildNodes[0]text;

}

调用方法:alert(getXmlNodeValue(1, 2));

2、用 for 循环来取

实现过程:首先创建一个 ie 支持的 xml 对象,如果发生异常,是创建一个 FireFox 支持的空 xml 对象并返回空;然后载入 xml 文件,如要发生异常也返回空;最后,通过 for 循环遍历查找与传入的节点值相同的节点,找到后返回属于该节点的属性值。

//nodeValue 待取节点的所属节点值

function getXmlNodeValueFor(nodeValue){

var xmlDoc;

try {

//创建一个 ie 支持的 XML 文档对象

xmlDoc = new ActiveXObject("MicrosoftXMLDOM");

}catch(e){

try{

//创建FireFox空的XML文档对象

xmlDoc=documentimplementationcreateDocument("","",null);

}catch(e){

alert(emessage);

return "";

}

}

这个可以用正则表达式来实现。。。

要看你xml具体内容,才能确定表达式该怎么写,我给你举个简单的例子

<a><b>hello</b><b>world</b></a>想提取出b标签里面的内容可以用下面的代码实现

import javautilregexMatcher;

import javautilregexPattern;

public class Test {

public static void main(String[] args){

String s = "<a><b>hello</b><b>world</b></a>";

Pattern pattern = Patterncompile("<b>()</b>");

Matcher matcher = patternmatcher(s);

while(matcherfind()){

Systemoutprintln(matchergroup(1));

}

}

}

运行结果:

hello

world

如果很复杂的话。。。可以用专门的解析XML的来解析。。。一般的自己写个正则就可以解决了。。

希望能帮到你。。。仍有问题可以继续追问或者直接HI我。。。

以上就是关于如何用java取得XML节点的属性值全部的内容,包括:如何用java取得XML节点的属性值、VB 读取XML 属性、C#读取XML节点属性,急~在线等~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10075369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存