python解析xml文件如何读取所有<br >标签的内容

python解析xml文件如何读取所有<br >标签的内容,第1张

claimtext = rootgetElementsByTagName("claim-text")

for i in claimtext[0]childNodes:

    print inodeName  #你自己看哈 这里的 inodeName 有俩个类型 br #text ,所以取的时候加个类型判断吧 

    if  inodeName == '#text':

        print inodeValue

这玩意这么不好使 要不是 试试 beautifulsoup  这个html 解析标签 效果应该 嘎嘎的

dom4j中,使用Elementattributes方法可以获取到节点属性,而使用elements则可以获取相应的子节点

比如:

Element root = docgetRootElement();

List attrList = rootattributes();

for (int i = 0; i < attrListsize(); i++) {

//属性的取得

Attribute item = (Attribute)attrListget(i);

Systemoutprintln(itemgetName() + "=" + itemgetValue());

}

List childList = rootelements();

for (int i = 0; i < childListsize(); i++) {

//子节点的 *** 作

Element it = (Element) childListget(i);

//对子节点进行其它 *** 作

}

import javaioFile;

import javautilList;

import orgdom4jAttribute;

import orgdom4jDocument;

import orgdom4jDocumentException;

import orgdom4jElement;

import orgdom4jNamespace;

import orgdom4jNode;

import orgdom4jVisitorSupport;

import orgdom4jioSAXReader;

public class XmlTest {

public static void main(String[] args) {

SAXReader reader = new SAXReader();

readersetEncoding("ISO-8859-1");

Document doc = null;

try {

File file = new File("testxml");

doc = readerread(file);

// docaccept(new MyVisitor());//访问者模式遍历xml

printElement(docgetRootElement());

}

catch (DocumentException e) {

eprintStackTrace();

}

}

public static void printElement(Element element) {

String elementPrefix = elementgetNamespacePrefix();// 元素前缀

elementPrefix = elementPrefixequals("") "" : elementPrefix + ":";

Systemoutprint("<" + elementPrefix + elementgetName());

for (int i = 0; i < elementnodeCount(); i++) {// 查找命名空间

Node node = elementnode(i);

if (nodegetNodeType() == NodeNAMESPACE_NODE) {

Namespace nspace = (Namespace) node;

Systemoutprint(" xmlns:" + nspacegetPrefix() + "=\"" + nspacegetURI() + "\"");

}

}

for (int j = 0; j < elementattributeCount(); j++) {// 查找属性

Attribute attr = elementattribute(j);

String attrPrefix = attrgetNamespacePrefix();// 属性前缀

attrPrefix = attrPrefixequals("") "" : attrPrefix + ":";

Systemoutprint(" " + attrPrefix + attrgetName() + "=\"" + attrgetStringValue() + "\"");

}

Systemoutprintln(">");

List<Element> childElements = elementelements();

if (childElementssize() == 0) {// 如果元素下面没有子元素,输出此元素文本内容

String text = elementgetTextTrim();

if (!textequals("")) {

Systemoutprintln(elementgetTextTrim());

}

}

else {

for (Element childElement : childElements) {// 遍历子元素

printElement(childElement);

}

}

Systemoutprintln("</" + elementPrefix + elementgetName() + ">");

}

}

class MyVisitor extends VisitorSupport {// 访问者模式遍历xml

@Override

public void visit(Element node) {

Systemoutprintln("元素:" + nodegetName());

Systemoutprint((nodeelements()size() == 0 "文本:" + nodegetTextTrim() + "\n" : ""));

}

@Override

public void visit(Attribute node) {

String prefix = nodegetNamespacePrefix();

prefix = prefixequals("") "" : (prefix + ":");

Systemoutprintln("属性:" + prefix + nodegetName() + "=" + nodegetText());

}

@Override

public void visit(Namespace namespace) {

Systemoutprintln("命名空间:xmlns:" + namespacegetPrefix() + "=" + namespacegetURI());

}

}

好了,就这么多,两个方式,自己写循环遍历或者用访问者模式遍历。

其实下载个dom4j源代码看看就知道了。

给你个函数,传Node,属性名进去获取属性值,兼容所有浏览器:

function getAttributeValue (xmlNode,attrName){

if(!xmlNode)return "" ;

if(!xmlNodeattributes) return "" ;

if(xmlNodeattributes[attrName]!=null) return xmlNodeattributes[attrName]value ;

if(xmlNodeattributesgetNamedItem(attrName)!=null) return xmlNodeattributesgetNamedItem(attrName)value ;

return "" ;

}

获取 p1 的值,就是 getAttributeValue(p,"p1") ;

以上就是关于python解析xml文件如何读取所有<br />标签的内容全部的内容,包括:python解析xml文件如何读取所有<br />标签的内容、java中dom4j解析xml文件怎么获取节点属性、谁能用java的dom4j解析出一下xml文件中的每个字段!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存