有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java向XmlObject的所有标记添加前缀

我有一个xml字符串,我想通过在这个xml的所有标记中添加前缀“peci”来使用这个xml字符串构建一个新的Dom元素。 这是我的代码:

Document Effective_Change=null;                 
factory=XmlObject.Factory.parse(NewElement);
                    String testxml =factory.toString();
                    System.out.println(testxml);
                    DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();  
                    fact.setNamespaceAware(true);
                    DocumentBuilder build; 
                    build = fact.newDocumentBuilder();
                    Effective_Change = build.parse(new InputSource(new StringReader(testxml)));
                    Effective_Change.setPrefix("peci");
                     System.out.println(factory.xmlText());

在开始时,tesxml包含:

<peci:xml-fragment xmlns:peci="urn:com.url/peci">
  <Derived_Event_Code>xx</Derived_Event_Code>
  <Effective_Moment>2018-07-23T04:20:04</Effective_Moment>
  <Entry_Moment>2018-07-23T04:20:04</Entry_Moment>
  <Person_Identification isUpdated="1">
    <Government_Identifier isDeleted="1">
      <Government_ID>xxxxx</Government_ID>
      <Government_ID_Type>xxxxxx/Government_ID_Type>
      <Issued_Date>xxxxx</Issued_Date>
    </Government_Identifier>
  </Person_Identification>
</peci:xml-fragment>

但我在这方面做得不好

Effective_Change.setPrefix("peci");

我得到这个错误:

org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
    at org.apache.xerces.dom.NodeImpl.setPrefix(NodeImpl.java:701)

我希望得到的结果是:

<peci:xml-fragment xmlns:peci="urn:com.url/peci">
  <peci:Derived_Event_Code>xx</peci:Derived_Event_Code>
  <peci:Effective_Moment>2018-07-23T04:20:04</peci:Effective_Moment>
  <peci:Entry_Moment>2018-07-23T04:20:04</peci:Entry_Moment>
  <peci:Person_Identification isUpdated="1">
    <peci:Government_Identifier isDeleted="1">
      <peci:Government_ID>xxxxx</peci:Government_ID>
      <peci:Government_ID_Type>xxxxxx</peci:Government_ID_Type>
      <peci:Issued_Date>xxxxx</peci:Issued_Date>
    </peci:Government_Identifier>
  </peci:Person_Identification>
</peci:xml-fragment>

共 (0) 个答案