当前位置: 首页 > 知识库问答 >
问题:

JDOM2、xmlns(xsd)可从XML文档中更改或删除

蒙麒
2023-03-14

我的XML输入:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<myroot xmlns="myxsd.xsd" class="15">
    <data att1="all" att2="actual">
        <myobject patt1="patt1_value" patt2="patt2_value" patt3="patt3_value">
            <p name="p1">page1</p>
            <p name="p2">page1</p>
            <p name="p3">page1</p>
            <p name="p4">page4</p>
        </myobject>
    </data>
</myroot>

我的XML输出:

<?xml version="1.0" encoding="UTF-8"?>
<myroot xmlns="http://www.w3.org/2001/XMLSchema-instance" class="15">
  <data xmlns="myxsd.xsd" att1="all" att2="actual">
    <myobject patt1="patt1_value" patt2="patt2_value" patt3="patt3_value">
      <p name="p1">page1</p>
      <p name="p2">page1</p>
      <p name="p3">page1</p>
      <p name="p4">page4</p>
    </myobject>
  </data>
</myroot>
public void Edit_file() throws JDOMException, IOException {

    InputStream in = new FileInputStream("C:\\small_test.xml");

    SAXBuilder builder = new SAXBuilder();
    Document document = builder.build(in);

    // getting the root element
    Element root = document.getRootElement();
    Namespace tempNamespace = Namespace.getNamespace("http://www.w3.org/2001/XMLSchema-instance");
    root.setNamespace(tempNamespace);


    // iterating over the children
    List<Element> data = root.getChildren("data");

    for (Element element : data) {

        Attribute id = element.getAttribute("att1");
        id.setValue("New value");
    }
    XMLOutputter xmlOutput = new XMLOutputter();

    xmlOutput.setFormat(Format.getPrettyFormat());
    xmlOutput.output(document, System.out);

}

暂时还没有答案

 类似资料:
  • 问题内容: 我们正在开发一个涉及大量XML转换的应用程序。我们本身没有任何适当的输入测试数据,只有DTD或XSD文件。我们希望自己从这些文件中生成测试数据。有没有简单/免费的方法可以做到这一点? 编辑 显然没有免费的工具,我也同意OxygenXML是最好的工具之一。 问题答案: 在Visual Studio 2008 SP1和更高版本中,XML Schema Explorer可以使用一些基本的示例

  • 问题内容: 给出如下结果 但是我需要从输出中删除xml声明,我该怎么做 问题答案: 您是否看到了Transformer使用的OutputKeys?特别是OMIT_XML_DECLARATION。 请注意,删除标头在XML 1.0中有效,但是会丢失字符编码数据(尤其如此),这可能非常重要。

  • 使用eclipse时,我消除了所有错误,但当我更改xml文档中的元素内容时,超出了中设置的限制。xsd文件没有出现验证错误。我已尝试使用联机验证http://www.freeformatter.com/xml-validator-xsd.html我得到了错误“Cvc elt.1:找不到元素“DatabaseInventory”…行“4”,列“69”的声明”,但在eclipse中它验证得很好。不知道

  • 例子 (Demo Example) 这是我们需要修改的XML - <?xml version = "1.0"?> <class> <student rollno = "393"> <firstname>dinkar</firstname> <lastname>kad</lastname> <nickname>dinkar</nickname>

  • XPath parser is used to navigate XML Documents only. It is better to use DOM parser for modifying XML. Please refer the Java DOM Parser section for the same.

  • 例子 (Demo Example) 这是我们需要修改的XML - <?xml version = "1.0"?> <class> <student rollno = "393"> <firstname>dinkar</firstname> <lastname>kad</lastname> <nickname>dinkar</nickname>