如何通过JDOM解析xml文件以查找主要属性的内容

时间:2018-05-30 12:50:32

标签: java xml bpmn jdom

我想解析我的xml文件(BPMN 2.0)以通过JDOM读取<text>标记的内容。我的意思是阅读“测试myAnnotation”

  <textAnnotation id="myAnnotation_ID" signavio:alignment="left" textFormat="text/plain">
     <text>Test of myAnnotation</text>
  </textAnnotation>

这是我的代码:

Document doc = new SAXBuilder().build(myfile);
BPMN2NS = Namespace.getNamespace("http://www.omg.org/spec/BPMN/20100524/MODEL");
Element procElem = doc.getRootElement().getChild("process", BPMN2NS);
List<Element> textAnnotation = procElem.getChildren("textAnnotation", BPMN2NS);

但我已经可以阅读[Element: <text [Namespace: http://www.omg.org/spec/BPMN/20100524/MODEL]/>],作为“textAnnotation”元素的“内容”。

任何想法如何阅读“myAnnotation测试”?

2 个答案:

答案 0 :(得分:1)

我想,一旦你得到你的textAnnotation元素,你就必须得到所有名为&#34; text&#34;并使用以下代码获取文本。

    Document doc = new SAXBuilder().build(myfile);

    Namespace BPMN2NS = Namespace.getNamespace("http://www.omg.org/spec/BPMN/20100524/MODEL");
    Element procElem = doc.getRootElement().getChild("process", BPMN2NS);
    List<Element> textAnnotations = procElem.getChildren("textAnnotation", BPMN2NS);
    List<Element> texts = textAnnotations.get(0).getChildren("text", BPMN2NS);
    System.out.print(texts.get(0).getText());

答案 1 :(得分:0)

SimpleXml可以做到:

final String data = "<textAnnotation id=\"myAnnotation_ID\" signavio:alignment=\"left\" textFormat=\"text/plain\">\n" +
            "     <text>Test of myAnnotation</text>\n" +
            "  </textAnnotation>";
final SimpleXml simple = new SimpleXml();
final Element element = simple.fromXml(data);
System.out.println(element.children.get(0).text);

将输出:

Test of myAnnotation

从Maven Central:

<dependency>
    <groupId>com.github.codemonstur</groupId>
    <artifactId>simplexml</artifactId>
    <version>1.4.0</version>
</dependency>