public class FpdFileContents {\r
\r
static final String xmlNs = "http://www.TianoCore.org/2006/Edk2.0";\r
+ static final String regNewLineAndSpaces = "((\n)|(\r\n)|(\r)|(\u0085)|(\u2028)|(\u2029))(\\s)*";\r
\r
private PlatformSurfaceAreaDocument fpdd = null;\r
\r
}\r
\r
cursor.push();\r
- cursor.toPrevToken();\r
+ while (cursor.hasPrevToken()) {\r
+ cursor.toPrevToken();\r
+ if (!cursor.isText()) {\r
+ break;\r
+ }\r
+ String s = cursor.getTextValue();\r
+ if (s.matches(regNewLineAndSpaces)) {\r
+ continue;\r
+ }\r
+ }\r
+\r
if (cursor.isComment()) {\r
cursor.removeXml();\r
}\r
+ \r
cursor.pop();\r
cursor.removeXml();\r
if (getFrameworkModulesCount() == 0) {\r
ModuleSADocument.ModuleSA moduleSA = getModuleSA(moduleKey);\r
if (moduleSA.getPcdBuildDefinition() != null) {\r
XmlCursor cursor = moduleSA.getPcdBuildDefinition().newCursor();\r
+ cursor.push();\r
if (cursor.toFirstChild()) {\r
do {\r
PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData pcdData = (PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData) cursor\r
}\r
} while (cursor.toNextSibling());\r
}\r
+ \r
+ cursor.pop();\r
+ if (moduleSA.getPcdBuildDefinition().getPcdDataList().size() == 0) {\r
+ cursor.removeXml();\r
+ }\r
cursor.dispose();\r
}\r
}\r
cursor.toNextSibling();\r
}\r
cursor.push();\r
- cursor.toPrevToken();\r
+ while (cursor.hasPrevToken()) {\r
+ cursor.toPrevToken();\r
+ if (!cursor.isText()) {\r
+ break;\r
+ }\r
+ String s = cursor.getTextValue();\r
+ if (s.matches(regNewLineAndSpaces)) {\r
+ continue;\r
+ }\r
+ }\r
+ \r
if (cursor.isComment()) {\r
cursor.removeXml();\r
}\r