
程序如下,其中equal(“”)双引号中的值为节点的属性值
属性值获取如下:
package saxbuilderibmxmlproperty;
import javaioFile;
import javaioIOException;
import javautilIterator;
import orgdom4jAttribute;
import orgdom4jDocument;
import orgdom4jDocumentException;
import orgdom4jElement;
import orgdom4jioSAXReader;
import orgjdomJDOMException;
import orgjdominputSAXBuilder;
public class XmlProperty {
public Element element;
String path = "D:\\xml\\axml";
public void getElementProperty() {
File file = new File(path);
try {
SAXReader reader = new SAXReader();
Document dc = readerread(file);
Element e = dcgetRootElement();
// 节点值
Element child = (Element) egetQName("COMMAND");
Systemoutprintln(childtoString());
// 一级节点
for (Iterator iterator = eelementIterator(); iteratorhasNext();) {
Element el = (Element) iteratornext();
// 一级节点的属性信息
for (Iterator iterator2 = elattributeIterator(); iterator2
hasNext();) {
Attribute attribute = (Attribute) iterator2next();
if(attributegetName()equals("bodyCategory")){
Systemoutprintln("attributegetName()一级节点的属性信息+"+attributegetName()+attributegetValue());
}else{
Systemoutprintln("attributegetName()一级节点的属性信息+"+attributegetName()+attributegetValue());
}
// 二级节点
for (Iterator iterator3 = elelementIterator(); iterator3
hasNext();) {
Element ele = (Element) iterator3next();
// 二级节点的属性信息
for (Iterator iterator4 = eleattributeIterator(); iterator4
hasNext();) {
Attribute attribute1 = (Attribute) iterator4next();
if(attribute1getName()equals("cmdType")){
Systemoutprintln("attribute1getName()二级节点的属性信息+"+attribute1getName()+"+"+attribute1getValue());
}else{
Systemoutprintln("attribute1getName()二级节点的属性信息+"+attribute1getName()+"+"+attribute1getValue());
}
}
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
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 "";
}
}
xmlDocasync = false;
try {
xmlDocload("employeeInfoxml");
}catch(e){
alert(emessage);
return "";
}
var xd=xmlDocdocumentElementchildNodes;
if(xd==null)
return "";
var tempValue;
for(var i=0;i<xdlength;i++){
if(xd[i]childNodes[0]childNodes[0]nodeValue==nodeValue) tempValue=xd[i]childNodes[2]childNodes[0]nodeValue;
}
return tempValue;
}
//加载参数Xml
XmlDocument xmlParm = new XmlDocument();
xmlParmLoad(XMLString);
XmlNode xnParams = xmlParmSelectSingleNode("节点的位置");
string nodeValue = xnParamsValue;
var list = documentgetElementById('lList')getElementsByTagName('li')
var list_1 = list[0]innerText
consoledir(list) // Array
consolelog(list_1) // "第一行选择文字1"
(1)parentObjfirstChild:如果节点为已知节点 (parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持 parentObjfirstChildfirstChildfirstChild的形式,如此就可以获得更深层次的节点。
(2)parentObjlastChild:很显然,这个属性是获取已知节点(parentObj)的最后一个子节点。与firstChild一样,它也可以递归使用。
在使用中,如果我们把二者结合起来,那么将会达到更加令人兴奋的效果,即:parentObjfirstChildlastChildlastChild
(3)parentObjchildNodes:获取已知节点的子节点数组,然后可以通过循环或者索引找到需要的节点。
注意:经测试发现,在IE7上获取的是直接子节点的数组,而在Firefox20011上获取的是所有子节点即包括子节点的子节点。
(4)parentObjchildren:获取已知节点的直接子节点数组。
注意:经测试,在IE7上,和childNodes效果一样,而Firefox20011不支持。这也是为什么我要使用和其他方法不同样式的原因。因此不建议使用。
(5)parentObjgetElementsByTagName(tagName): 使用方法不再赘述,它返回已知节点的所有子节点中类型为指定值的子节点数组。例 如:parentObjgetElementsByTagName('A')返回已知的子节点中的所有超链接。
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
ResponseWrite(TreeView1SelectedNodeValue);
}
protected void Button1_Click(object sender, EventArgs e)
{
if(TreeView1SelectedNode!=null)
ResponseWrite("获取当前节点的value:" + TreeView1SelectedNodeValue);
}
$('#tree')jstree()get_checked(); //获取所有选中的节点ID
$('#tree')jstree()get_checked(true); //获取所有选中的节点对象
很简单啊,你这个列表展示的话,应该是用到c标签或者其他的吧,那直接做个判断就行了,
<c:if
test="判断条件"><span
style="cloor:red">
值</span></c:if>,不用c标签也是一样的,就是做个判断,然后加样式
创建解析器
SAXReader saxreader = new SAXReader();
读取文档
Document doc = saxreaderread(new File("url"));
获取根
Element root = docgetRootElement();
获取子节点
List<Element> list = rootelements();
Systemoutprintln(eelementText("name"));
Systemoutprintln(eelement("score")attributeValue("java"));
Reader reader = new InputStreamReader(con
getInputStream());
SAXReader sax = new SAXReader();
// saxsetEncoding("GBK");
Document document = saxread(reader);
documentsetXMLEncoding("GBK");
Element root = documentgetRootElement();
// Document doc = readerread(read);
// Element root = docgetRootElement();
readNode(root, "");
public static void readNode(Element root, String prefix) {
if (root == null) return;
// 获取属性
List<Attribute> attrs = rootattributes();
if (attrs != null && attrssize() > 0) {
Systemerrprint(prefix);
for (Attribute attr : attrs) {
Systemerrprint(attrgetValue() + " ");
}
Systemerrprintln();
}
// 获取他的子节点
List<Element> childNodes = rootelements();
prefix += "\t";
for (Element e : childNodes) {
//输出内容
Systemerrprintln(egetName()+":"+egetData());
readNode(e, prefix);
}
}
以上就是关于java语句如何获取XML文件的节点值全部的内容,包括:java语句如何获取XML文件的节点值、如何获取xml文件中某个节点的值、asp.net如何获取到xml文件的节点值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)