标签: xerces

javax.xml.transform.TransformerException:java.io.FileNotFoundException:<file_name>(访问被拒绝)

我在最后一行代码中遇到异常 -

Transformer transformer = TransformerFactory.newInstance().newTransformer();
DOMSource xmlSource = new DOMSource(document);

StreamResult result;
File f = new File(sFilePath);
if (f.exists() == false) {
   result = new StreamResult(f);
} else {
   result = new StreamResult(sFilePath);
}

transformer.transform(xmlSource, result);
Run Code Online (Sandbox Code Playgroud)

异常堆栈跟踪是 -

java.io.FileNotFoundException:C:\ ProgramData.\ config\.xml(访问被拒绝)stacktrace javax.xml.transform.TransformerException:java.io.FileNotFoundException:C:\ ProgramData.\ config\.xml(访问被拒绝)com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler(未知来源)at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)at at来自com..main.dr.a(未知来源)的com..main.dr.a(未知来源)位于com..main.hk(未知来源)的com..main.hk(未知来源)at at com..main.ay.run(Unknown Source)由以下引起:java.io.FileNotFoundException:C:\ ProgramData.\ config\.xml(访问被拒绝)java. java.io.FileOutputStream.open(Native Method) .io.FileOutputStream.java.io.FileOutputStream中的(未知来源).(未知来源)... 7更多--------- java.io.FileNotFoundException:C:\ ProgramData.\ config\.xml(访问被拒绝)在java.io.FileOutputStream.open(本机方法) )在java.io.FileOutputStream.java.io.FileOutputStream中的(未知来源).(未知来源)com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler(未知来源),地址为com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(未知来自com..main.dr.a(未知来源)的com..main.dr.a(未知来源)com.com.main.dr.a(未知来源)at com..main.hk(未知)来自com..main.ay.run(未知来源)和原因isjava.io.FileNotFoundException:C:\ ProgramData.\ config\.xml(访问被拒绝)

java file-io parsing dom xerces

2
推荐指数
1
解决办法
1万
查看次数

如何使用Visual Studio 2010构建Xalan-C?

我无法找到可能的证据.经过40个小时的自我疯狂之后,我不得不建立一个本地化项目,这个项目应该构建一个名称不佳的AllInOne项目(构建Xalan-C.lib,natch)所需的头文件.

这个库是软件的弊端,我迫切需要一个答案,因为它是另一个库中的依赖,我别无选择.

xerces xalan xerces-c xml-parsing

2
推荐指数
1
解决办法
2005
查看次数

编译样本ocde时对xercesc_2_8的未定义引用

我正在尝试编译以下XERCES站点提供的示例代码:

#include <xercesc/util/PlatformUtils.hpp>
// Other include files, declarations, and non-Xerces-C++ initializations.
XERCES_CPP_NAMESPACE_USE

int main(int argc, char* argv[])
{
  try {
      XMLPlatformUtils::Initialize();

  }
  catch (const XMLException& toCatch) {
    // Do your failure processing here
    return 1;
  }

  // Do your actual work with Xerces-C++ here.

  XMLPlatformUtils::Terminate();

  // Other terminations and cleanup.
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

用,

g++ -g -Wall -pedantic -L/usr/lib -lxerces-c -o xercesTest xercesTest.cpp
Run Code Online (Sandbox Code Playgroud)

给我以下链接错误:

/tmp/ccYIHCfR.o: In function `main':
/home/cjmv/temp/xercesTest.cpp:8: undefined reference to `xercesc_2_8::XMLUni::fgXercescDefaultLocale'
/home/cjmv/temp/xercesTest.cpp:8: undefined reference to `xercesc_2_8::XMLPlatformUtils::Initialize(char const*, char …
Run Code Online (Sandbox Code Playgroud)

c++ ubuntu xerces xerces-c

2
推荐指数
1
解决办法
3381
查看次数

从Xerces获取XML数据(c ++)

我是XML的后来者 - 必须解析XML文件.我们公司已经使用了xerces所以我设法凑齐了一个示例应用程序(SAX),它显示了文件中的所有数据.但是,在解析完成后,我希望能够调用解析器或其他具有文件内部表示的实体并遍历字段/数据.

基本上我希望能够将一些键或其他字符串交给它并返回字符串或键/值对的集合.我没有看到.对我来说这似乎很明显,这是一件好事.我错过了什么吗?

DOM解析我想要的东西,还是那个也不合适?

c++ xml xerces

1
推荐指数
1
解决办法
3056
查看次数

Solaris上的StackOverflowError但Linux/Windows上没有

我有一个Java应用程序,它使用在Linux和Windows上运行良好的Xerces解析大型xml架构(.xsd),但在Solaris上提供StackOverflowError,具有完全相同的输入和配置.我知道Xerces使用递归来验证xml架构,但由于它在Windows和Linux上没有出现任何问题,我非常有信心它可以在任何地方运行.

为什么会这样?有解决方法吗?

java xml xerces

1
推荐指数
1
解决办法
1267
查看次数

防止 xml 炸弹 XercesDOMParser - C++

我正在使用 XercesDOMParser 在 linux (c++) 中读取 xml 文件,我想防止 xml 炸弹(Billion 笑)所以我设置了这些属性:

parser->setDoNamespaces(true)
parser->setDisableDefaultEntityResolution(true)
parser->setEntityResolver(NULL)
parser->setSkipDTDValidation(true)
Run Code Online (Sandbox Code Playgroud)

然而,它没有帮助,炸弹仍然存在。你知道如何防止它吗(我只能在 DOM 中使用 xerces)

10 倍!

c++ dom xerces

1
推荐指数
1
解决办法
717
查看次数

检索标记XML Xerces C++ Parser之间的值

我目前正在使用Xerces库来解析C++中的XML文件.我编写了算法解析器,唯一缺少的是如何检索两个标签之间的值?例如, <name>John</name>我希望能够得到John的值,所以我可以存储在我为此目的的字符串变量中.我知道用的

DOMElement * current = root->getFirstChildElement();
const XMLCh * tag = current->getTagName();
cout << XMLString::transcode(tag) << endl;
Run Code Online (Sandbox Code Playgroud)

我将能够打印该标签,但我对标签之间的价值更感兴趣.有任何想法吗?

c c++ xml xerces

1
推荐指数
1
解决办法
2123
查看次数

VS 2015无法打开编译器生成的文件:”:无效的参数

在构建xerces 3.1.2的过程中,我得到:

1> XML256TableTranscoder.cpp:致命错误C1083:无法打开编译器生成的文件:'':无效的参数

在发生错误之前,编译器似乎并未在.cpp文件本身上工作,因为我可以删除文件中的所有源代码,但仍然会收到错误。

c++ xerces visual-studio

1
推荐指数
1
解决办法
3150
查看次数

更新 Apache POI 4.0 后 - 无法识别属性“http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit”

将 Apache POI 从 3.17 更新到 4.0.0 后,我上线了:

OPCPackage pck = OPCPackage.open(this.getTemplate());

一个例外:

java.lang.IllegalArgumentException: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
     at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:144)
     at __redirected.__DocumentBuilderFactory.setAttribute(__DocumentBuilderFactory.java:125)
     at org.apache.poi.ooxml.util.DocumentHelper.trySetXercesSecurityManager(DocumentHelper.java:143)
     at org.apache.poi.ooxml.util.DocumentHelper.<clinit>(DocumentHelper.java:108)
     at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.parseContentTypesFile(ContentTypeManager.java:392)
     at org.apache.poi.openxml4j.opc.internal.ContentTypeManager.<init>(ContentTypeManager.java:104)
     at org.apache.poi.openxml4j.opc.internal.ZipContentTypeManager.<init>(ZipContentTypeManager.java:54)
     at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:258)
     at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:725)
     at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:275)
     at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:181)
Run Code Online (Sandbox Code Playgroud)

他们在如何使用 logback 禁用 accessExternalDTD 和 entityExpansionLimit 警告中说,我应该排除 xerces,但我已经有了:

  <dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi</artifactId>
     <version>4.0.0</version>
  </dependency>
  <dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi-ooxml</artifactId>
     <version>4.0.0</version>
     <exclusions>
        <exclusion>
           <groupId>xml-apis</groupId>
           <artifactId>xml-apis</artifactId>
        </exclusion>
        <exclusion>
           <groupId>xerces</groupId>
           <artifactId>xercesImpl</artifactId>
        </exclusion>
     </exclusions>
  </dependency>
Run Code Online (Sandbox Code Playgroud)

我的设置:

  • JDK 8
  • 野蝇 14

回到 3.17 解决了这个问题。

java exception xerces apache-poi

1
推荐指数
1
解决办法
2801
查看次数

使用Xerces从内存加载xml

我得到了一些我想用Xerces解析的合理的xml数据(由CodeSynthesis生成).

在光盘上它是加密的,所以我加载它,解密它...我被卡住,因为Xerces只接受文件作为输入.

我曾考虑过重载一个'读者'(即.std :: istream或xercesc :: InputSource)并伪造光盘读数,但它看起来像古怪而不优雅.

有没有更简单和更简洁的方法来做到这一点?

谢谢!

c++ xml memory file xerces

0
推荐指数
1
解决办法
1307
查看次数

Xml节点文本在有滑稽字符时会导致问题

我在以下事件中设置xml元素内的字符:

 public void characters(char[] ch, int start, int length) {
        elementText = new String(ch, start, length);
    }
Run Code Online (Sandbox Code Playgroud)

其中elementText是一个String.

<client-key>#&lt;ABC::DEF::GHI:0x102548f78&gt;</client-key>
Run Code Online (Sandbox Code Playgroud)

我将此xml数据加载到java对象中,我的objects属性具有以下值:

 '\n        '
Run Code Online (Sandbox Code Playgroud)

现在,如果我更改<client-key>上面元素中的文本,它在我的对象属性中就可以了.

我需要以某种方式处理某些编码问题吗?

public void endElement(String uri, String localName, String qName) {

       if (qName.equals("client-key")) {
            client.setClientKey(elementText);
        }

}
Run Code Online (Sandbox Code Playgroud)

java xml sax xerces

-3
推荐指数
1
解决办法
826
查看次数

标签 统计

xerces ×11

c++ ×6

xml ×5

java ×4

dom ×2

xerces-c ×2

apache-poi ×1

c ×1

exception ×1

file ×1

file-io ×1

memory ×1

parsing ×1

sax ×1

ubuntu ×1

visual-studio ×1

xalan ×1

xml-parsing ×1